ホームページ > 運用・保守 > Docker > Docker のコンテナ間の通信方法は何ですか?

Docker のコンテナ間の通信方法は何ですか?

WBOY
リリース: 2022-02-07 10:38:10
オリジナル
12931 人が閲覧しました

Docker におけるコンテナ間の通信方法: 1. コンテナの IP を使用してアクセスします。 2. ホストの「ip:port」を使用してアクセスします。 3. リンクを使用して通信用の接続を確立します。 4. 「」を使用します。ユーザー定義ネットワーク」を使用して通信します。

Docker のコンテナ間の通信方法は何ですか?

このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。

Docker におけるコンテナ間の通信方法とは

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
ログイン後にコピー

リンク名またはリンク時に使用したエイリアスを使用して直接入力できます:

Docker のコンテナ間の通信方法は何ですか?

Docker のコンテナ間の通信方法は何ですか?

接続を確立するリンク経由 リンクされたコンテナはソース コンテナに ping を送信できますが、その逆はできません。

リンクされたコンテナーの環境変数を表示する

Docker のコンテナ間の通信方法は何ですか?

#リンクされたコンテナーは、ソース コンテナーの環境変数情報を継承します。

/etc/hosts のホスト エントリとは異なり、環境変数に保存されている IP アドレスは、ソース コンテナが再起動されても自動的に更新されません。 /etc/hosts のホスト エントリを使用して、リンクされたコンテナの IP アドレスを解決することをお勧めします。

環境変数に加えて、Docker はソース コンテナのホスト エントリも /etc/hosts ファイルに追加します。

Docker のコンテナ間の通信方法は何ですか?

ソース コンテナが再起動されると、リンク コンテナ上の /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 ビデオ チュートリアル

以上がDocker のコンテナ間の通信方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート