Dockerはコンテナポートバインディングのローカルポートを実装します

Dockerはコンテナポートバインディングのローカルポートを実装します

今日、イメージを起動した後、HTTP リクエスト経由でアクセスできないという小さな問題が発生しました。解決策を記録して共有しましょう。

一般的な Docker 起動コマンドとソリューションは次のとおりです。

1. Dockerを起動する

ご存知のとおり、コンテナを起動するコマンドは次のとおりです。

docker run イメージ名

2. コンテナポートをローカルポートにバインドする

コンテナを起動した後は、ローカルポートに直接アクセスすることができないため、ローカルポートを介してコンテナにアクセスできるように、ローカルポートをコンテナポートにバインドする必要があります。設定は以下のとおりです。

docker run -p ローカルポート: コンテナポートイメージ名

その後、ローカル ブラウザーを介してローカル ポート経由でコンテナーにアクセスできるようになります。

3. コンテナはバックグラウンドで実行されます。-d パラメータを追加します。コマンドは次のようになります。

docker run -d -p ローカルポート: コンテナポートイメージ名

4. ミラーリストを表示するには、コマンドは次のようになります。

dockerイメージls
またはDockerイメージ

5. 実行中のコンテナを表示するには、コマンドは次のようになります。

ドッカーps

補足: Dockerは実行中のコンテナにローカルポートをマッピングします

1. 実行中のコンテナをイメージとして送信する(コンテナ内の各種操作が失われないようにするため)

docker コミット tang tang1
### tang (実行中のコンテナの名前) tang1 (生成されたイメージの名前)

2. イメージを実行してポートを追加する

docker run -d -it -p 8000:80 tang1:latest /bin/bash
### 小さな p はカスタムポートで、latest はイメージのラベルです (プロフェッショナルなものを書いた方が良いでしょう)

補足: Dockerはボリュームをロードし、ポートをバインドします

必要とする

Docker イメージを取得しました。次に、コンテナを作成し、ローカル ディレクトリをコンテナ ディレクトリにロードし、ローカルとコンテナ間のポートをマップします。

具体的な例は以下のとおりです。

画像ID: 884e0fc83dfe

コンテナ名を設定: test

ローカルポート9000をコンテナのポート80にマッピングする

データボリュームをロードします。ローカルの ~/Desktop/test をコンテナの /test ディレクトリにマップします。

成し遂げる

docker run -it --name test -v ~/Desktop/test:/test -p 9000:80 884e0fc83dfe /bin/bash
# 新しいコンテナに入る
docker スタートテスト
docker アタッチテスト

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • 非ルートユーザーを使用してDockerコンテナでスクリプト操作を実行する
  • Dockerコンテナにホストディレクトリへの書き込み権限がない場合の解決策
  • Dockerコンテナの中国語言語パックの設定の問題を解決する
  • DockerコンテナがSongtiなどのフォントを認識しない場合の解決策
  • Docker の win ping 失敗コンテナ回避ガイド
  • DockerコンテナでJupyterノートブックを設定する方法
  • docker run後にコンテナがExited (0)と表示される問題を解決する
  • Dockerはコンテナに入るためにルートを使用する

<<:  CSS メニューボタンアニメーション

>>:  JavaScript の例におけるループの使用法の詳細な説明

推薦する

MySQL の null と not null、null と空の値の違いの詳細な説明 ''''

MySQL を長い間使用してきた多くの人は、これら 2 つのフィールド属性の概念をまだよく理解して...

WMLタグの概要

構造関連タグ--------------------------------------------...

MySQL における UNION と UNION ALL の基本的な使い方

データベースでは、UNION キーワードと UNION ALL キーワードの両方が 2 つの結果セッ...

CentOS 8 インストール図 (超詳細なチュートリアル)

CentOS 8 が正式にリリースされました! CentOS は Red Hat の再配布ポリシー...

MySQL 5.7.18 無料インストールバージョンの設定チュートリアル

MySQL 5.7.18 無料インストール版のインストールチュートリアルMySQL は現在、世界で最...

MySQL でのバイナリ型操作

この記事は主にMySQLデータベースのバイナリ型操作を紹介し、具体的な内容を通して紹介します。MyS...

JavaScript プロトタイプオブジェクトの this ポイント問題の詳細な説明

目次1. これは2. この点を修正する1. call() メソッド2. apply() メソッド要約...

Docker のポート解放失敗の解決策

今日、非常に奇妙な状況に遭遇しました。docker イメージを更新した後、docker-compos...

Ubuntuはカーネルモジュールをコンパイルし、その内容はシステムログに反映されます。

目次1.Linuxログインインターフェース2. コードを書く3. Makefileを書く4. コンパ...

HTML文書の基本構造(Webページ作成の基礎知識)

HTMLの動作原理: 1. ローカル操作: ブラウザでhtmlファイルを開く2. リモートアクセス...

Python ベースの MySQL レプリケーション ツールの詳細な説明

目次1. はじめに2回目の練習2.1 インストールと設定2.2 コアクラスの紹介2.3 使い方は? ...

XHTML 入門チュートリアル: シンプルな Web ページの作成

1 分で最初の Web ページを作成します。簡単な Web ページを作ってみましょう。ぜひフォローし...

Linux スワップメモリ​​を拡張する方法

スワップ メモリとは、主に物理メモリが不足している場合に、システムがハード ディスク領域の一部をサー...

Vue-cliはプロジェクトを作成し、プロジェクト構造を分析します

目次1. ディレクトリを入力してプロジェクトを作成する2. 必要な設定項目を選択します2.1 Vue...