Docker におけるコンテナ間の通信方法: 1. コンテナの IP を使用してアクセスします。 2. ホストの「ip:port」を使用してアクセスします。 3. リンクを使用して通信用の接続を確立します。 4. 「」を使用します。ユーザー定義ネットワーク」を使用して通信します。
このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
1. コンテナの ip を介したアクセス
コンテナを再起動すると、ip が変わります。コンテナ IP 経由でアクセスするのは良い解決策ではありません。
2. ホストの ip:port を介したアクセス
ホストの ip:port を介したアクセスは、限定された通信のために公開ポートでリッスンするプロセスのみに依存します。
3. リンクを介した接続の確立 (公式には非推奨)
コンテナを実行するときに、ソース コンテナとリンクされたコンテナが相互に通信できるようにパラメータ link を指定します。受け入れられたコンテナは、ソース コンテナから環境変数などの一部のデータを取得できます。
# 源容器:mysql docker run -itd --name test-mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7 #被链接容器 centos docker run -itd --name test-centos --link test-mysql:mysql centos /bin/bash #进入test-centos docker exec -it test-centos /bin/bash
リンク名またはリンク時に使用したエイリアスを使用して直接入力できます:
接続を確立するリンク経由 リンクされたコンテナはソース コンテナに ping を送信できますが、その逆はできません。
リンクされたコンテナーの環境変数を表示する
#リンクされたコンテナーは、ソース コンテナーの環境変数情報を継承します。
/etc/hosts のホスト エントリとは異なり、環境変数に保存されている IP アドレスは、ソース コンテナが再起動されても自動的に更新されません。 /etc/hosts のホスト エントリを使用して、リンクされたコンテナの IP アドレスを解決することをお勧めします。
環境変数に加えて、Docker はソース コンテナのホスト エントリも /etc/hosts ファイルに追加します。
ソース コンテナが再起動されると、リンク コンテナ上の /etc/hosts ファイルがソース コンテナの新しい IP アドレスで自動的に更新され、リンク通信が継続できるようになります。
4. ユーザー定義のネットワーク (推奨)
docker ネットワークを介してブリッジ ネットワークを作成し、docker の実行時に新しく作成されたブリッジ ネットワークにコンテナを割り当てます。相互にアクセスできます。
ネットワークの作成
docker network create test-network
コンテナ起動時に作成したネットワークに参加
docker run -it --network test-network --network-alias mysql -e MYSQL_ROOT_PASSWORD=123 mysql:5.7
リンク先のコンテナを起動
docker run -it --network test-network --network-alias centos centos /bin/bash
docker ビデオ チュートリアル 」
以上がDocker のコンテナ間の通信方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。