基本的なネットワーク構成 Docker はイメージに基づいて複数のコンテナを「開く」ことができ、各コンテナは互いに影響を及ぼしませんが、コンテナが互いに完全に分離されていることを意味するわけではありません。イメージを実行すると、Docker はコンテナ ポートをホスト ホストにマッピングし、コンテナ ポートを別のコンテナにマッピングするネットワーク相互接続機能を提供し、コンテナがホスト ホストと通信したり、コンテナ同士が通信したりできるようにします。 ### 外部からコンテナアプリケーションにアクセスする コンテナを起動するときに、対応するパラメータを指定しないと、コンテナ外部のネットワーク経由でコンテナ内のネットワーク アプリケーションやサービスにアクセスできなくなります。外部からアクセスする必要があるコンテナ内のネットワーク アプリケーションを実行する場合は、-P または -p パラメータを使用してポート マッピングを指定できます。 -P フラグを使用すると、Docker は 49000 から 49900 までのポートをコンテナ内の開いているネットワーク ポートにランダムにマッピングします。 docker run -d -p [ミラーIDまたはタグ] マップするポートを指定するには -p (小文字) を使用します。指定されたポートにバインドできるコンテナーは 1 つだけです。サポートされている形式は、ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort です。 すべてのインターフェースアドレスをマップする hostPort:containerPort を使用して、ローカル ポート 5000 をコンテナーのポート 5000 にマップします。 docker run -d -p 5000:5000 トレーニング/ウェブアプリ python app.py デフォルトでは、すべてのローカル インターフェイス上のすべてのアドレスがバインドされます。複数のポートをバインドするには、-p フラグを複数回使用します。 docker run -d -p 5000:5000 -p 3000:80 トレーニング/ウェブアプリ python app.py 指定されたアドレスの指定されたポートにマップします ip:hostPort:containerPort 形式を使用して、ローカルホスト アドレス 127.0.0.1 などの特定のアドレスを使用してマッピングを指定できます。 docker run -d -p 127.0.0.1:5000:5000 トレーニング/ウェブアプリ python app.py 他の内部コンテナの IP アドレスにすることもできます。 指定されたアドレスの任意のポートにマップする ip::containerPort を使用して、localhost の任意のポートをコンテナのポート 5000 にバインドします。ローカル ホストは自動的にポートを割り当てます。 docker run -d -p 127.0.0.1::5000 トレーニング/ウェブアプリ python app.py udp フラグを使用して UDP ポートを指定することもできます。 docker run -d -p 127.0.0.1:5000:5000/udp トレーニング/webapp python app.py マッピングされたポート構成を表示する docker port を使用して、現在マップされているポート構成とバインドされたアドレスを表示します。 docker ポート nostalgic_morse 5000 コンテナには独自の内部ネットワークと IP アドレスがあります (すべての変数値を取得するには、docker inspect + コンテナ ID を使用します)。 コンテナ相互接続によりコンテナ間の通信が可能になる コンテナの接続システムは、ポート マッピングに加えて、コンテナ内のアプリケーションと対話するもう 1 つの方法です。ソースコンテナと受信コンテナの間にトンネルを作成し、受信コンテナはソースコンテナによって指定された情報を見ることができます。 カスタムコンテナ名 リンクシステムはコンテナ名に基づいて実装されます。したがって、まず覚えやすいコンテナ名をカスタマイズする必要があります。 コンテナを作成すると、システムによってデフォルトで名前が割り当てられますが、コンテナにカスタム名前を付けると、次の 2 つの利点があります。
--name フラグを使用して、コンテナにカスタム名を付けます。 docker run -d -p --name web training/webapp python app.py 名前を表示するには docker ps を使用するか、コンテナの名前を表示するには docker inspect を使用します。 docker examine -f "{{name}}" [ミラーID] コンテナの名前は一意です。すでにコンテナに web という名前を付けている場合は、web という名前の新しいコンテナを作成する前に、まず docker rm コマンドを使用してコンテナを削除する必要があります。 コンテナ相互接続 --link パラメータを使用して、コンテナが互いに安全にやり取りできるようにします。 --link パラメータの形式は --link name:alias です。ここで、name はリンクするコンテナの名前、alias はこの接続のエイリアスです。 たとえば、新しいデータベース コンテナーを作成しましょう。 docker run -d --name db トレーニング/postgres 次に、Web コンテナーを作成し、それを db コンテナーに接続します。 docker run -d -p --name web --link db:db training/webapp python app.py このとき、db コンテナと web コンテナは相互に通信できます。コンテナの接続を表示するには、docker ps を使用できます。 --link パラメータを使用すると、Docker はポートを開かずに安全なトンネルを介して 2 つのコンテナ間で通信できるため、ポートが外部ネットワークに公開されることを回避できます。 パブリックコンテナの接続情報を表示する 環境変数: envコマンドを使用してコンテナの環境変数を表示します。 docker run --name web --link db:db training/webapp env /etc/hosts ファイル: リンク パラメータを使用すると、Docker は親コンテナの /etc/hosts ファイルにホスト情報を追加します。以下は親コンテナwebのhostsファイルです。 docker run -t -i --link db:db トレーニング/webapp /bin/bash root@aed84ee21bd3:/opt/webapp# cat /etc/hosts 127.17.0.7 aed84ee21bde ... 172.17.0.5デシベル 1 つ目は、Web コンテナのホスト情報です。デフォルトでは、独自の ID がホスト名として使用されます。 2 番目は、db コンテナの IP とホスト名です。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
データは企業の中核資産であり、企業にとって最も重要なタスクの 1 つです。注意しないと、データが意図...
問題の説明MySQL が正常に起動しました。以下に示すように、 ps -ef |grep mysql...
この記事では、Linux のユーザーおよびグループのコマンドについて例を挙げて説明します。ご参考まで...
1.前面に書きます:軽量仮想化テクノロジーとして、Docker には継続的インテグレーション、バージ...
導入: AD は Active Directory の略称で、中国語では Active Direct...
この場合、transition という単語を間違って書いたため、午後中ずっとそれに取り組みました。本...
今日は IE8 ベータ 1 (以下、IE8 と略します) をチラ見しました。IE8 は素晴らしい体験...
SQL を最適化する必要があるのはなぜですか?当然ですが、SQL ステートメントを記述する場合、次の...
質問js を使用して CSS 疑似クラス スタイルを変更するにはどうすればよいでしょうか?しかし、j...
興味深い発見:合計 1000 件のレコードを含むテーブルがあります。クエリ ステートメントは次のよう...
mysql コマンドを使用して、mysql のインストール パスを表示できます。 # 次の 2 つの...
目次1. オプションAPIと組み合わせAPIの違い2. セットアップを具体的にどのように使用するので...
この記事の例では、カウントダウンプロンプトボックスを実装するためのJavaScriptの具体的なコー...
序文:タイムスタンプ フィールドは、MySQL でよく使用されます。たとえば、データ行が作成または変...
Web デザインの理解に関しては、多くの人がまだ Web ページ制作のレベルにとどまっているようで...