序文前回は、 -Linkパラメータを使用してコンテナ間の相互接続を設定し、コンテナ内でIPアドレスだけでなく対応するドメイン名にもアクセスできることを紹介しました。まずレビューします。取り扱う前にすべての容器を空にしてください。 -リンク# すべてのコンテナをクリアします $root@VM-8-11-ubuntu:~# docker stop $(docker ps -aq) && docker rm $(docker ps -aq) 88f8f241ca30 765ed1889bfa $root@VM-8-11-ubuntu:~# docker run -it --name=mybusy02 -d busybox 82aff31e56f3913b3fa883a08ec95960eff88fc9977360a67264c0d53180844b $root@VM-8-11-ubuntu:~# docker run -it --name mybusy --link mybusy02:mybusy-net -d busybox b77e9762314f868518f799d3c572dec0b2ce13a684de072fb9f9e925135f6459 $root@VM-8-11-ubuntu:~# docker exec -it mybusy ping mybusy-net PING mybusy-net (172.17.0.2): 56 データバイト 172.17.0.2 からの 64 バイト: seq=0 ttl=64 time=0.131 ms 172.17.0.2 からの 64 バイト: seq=1 ttl=64 time=0.069 ms 172.17.0.2 からの 64 バイト: seq=2 ttl=64 time=0.069 ms $root@VM-8-11-ubuntu:~# docker exec -it mybusy cat /etc/hosts 127.0.0.1 ローカルホスト ::1 ローカルホスト ip6-ローカルホスト ip6-ループバック fe00::0 ip6-ローカルネット ff00::0 ip6-mcastプレフィックス ff02::1 ip6-全ノード ff02::2 ip6-オールルーター 172.17.0.2 mybusy-net 09a4b97fc09d mybusy02 # mybusy02がhostsファイルに追加されていることがわかりました 172.17.0.3 c73be07d21fb 接続されていることがわかりましたが、 mybusy02 が mybusy に ping する場合は、 –link が必要です。なので非常に面倒で、公式も --link パラメータを使用しないことを推奨しています。 Docker 0 ではコンテナ名アクセスはサポートされていません。次に、本日のハイライトであるカスタム ネットワーキングについて説明します。 カスタムネットワーク# 主に関連するコマンド $root@VM-8-11-ubuntu:~# docker network --help 使用方法: docker network コマンド ネットワークを管理する コマンド: コンテナをネットワークに接続する 作成 ネットワークを作成する コンテナをネットワークから切断する 検査 1つまたは複数のネットワークの詳細情報を表示する ls ネットワークを一覧表示する 未使用のネットワークをすべて削除する rm 1つまたは複数のネットワークを削除します コマンドの詳細については、「docker network COMMAND --help」を実行してください。 # これはデフォルトのネットワークモードです。brudge は docker 0 のブリッジです。$root@VM-8-11-ubuntu:~# docker network ls ネットワーク ID 名前 ドライバー スコープ cf05ea05d3bd ブリッジ ブリッジ ローカル 0ab28e475dc6 ホスト ホスト ローカル e4c628cc77db なし null ローカル create を使用して独自のブリッジ ネットワークを作成しましょう。ベース # --driver ネットワークタイプを設定します --subnet サブネットを設定します/16 = 255*255 IP から 0.0 を引いた値で、255.255 はおよそ 65535 に等しくなります $root@VM-8-11-ubuntu:~# docker network create --driver=bridge --subnet=192.168.0.0/16 my-net 1b668a5439b207d2080d95bffe829139cfa2456d691c8019a245e7f9d5a56970 root@VM-8-11-ubuntu:~# docker ネットワーク ls ネットワーク ID 名前 ドライバー スコープ cf05ea05d3bd ブリッジ ブリッジ ローカル 0ab28e475dc6 ホスト ホスト ローカル 1b668a5439b2 マイネットブリッジローカル e4c628cc77db なし null ローカル # ネットワーク情報を確認する $root@VM-8-11-ubuntu:~# docker network inspect my-net [ { 「名前」: 「my-net」、 「ID」: 「1b668a5439b207d2080d95bffe829139cfa2456d691c8019a245e7f9d5a56970」、 「作成日」: 「2021-12-01T09:47:21.410882291+08:00」、 「スコープ」:「ローカル」、 「ドライバー」:「ブリッジ」、 「IPv6を有効にする」:false、 「IPAM」: { "ドライバー": "デフォルト", 「オプション」: {}, 「設定」: [ { 「サブネット」: 「192.168.0.0/16」 } ] }, 「内部」:偽、 「接続可能」: false、 「イングレス」:偽、 "設定元": { 「ネットワーク」: 「」 }, "ConfigOnly": false、 「コンテナ」: {}, 「オプション」: {}, 「ラベル」: {} } ] 上記ではネットワークの作成方法と表示方法を紹介しました。次に、ネットワークの使用方法について見ていきましょう。 # mybusy コンテナを作成し、my-net ネットワークを設定します $root@VM-8-11-ubuntu:~# docker run -it --name mybusy --net=my-net -d busybox 180fbc8b04627762a896d8a85d8cb67063c01a0f3ad8a11352ab4695b022c272 # mybusy02 コンテナを作成し、my-net ネットワークを設定します $root@VM-8-11-ubuntu:~# docker run -it --name mybusy02 --net=my-net -d busybox 3c08d592537a9593c960c9664b4724521658f26be7b658a6483e6fbfe30b58a7 # コンテナ内で mybusy ping mybusy02 が成功しました$root@VM-8-11-ubuntu:~# docker exec -it mybusy ping mybusy02 PING mybusy02 (192.168.0.3): 56 データバイト 192.168.0.3 からの 64 バイト: seq=0 ttl=64 time=0.110 ms 192.168.0.3 からの 64 バイト: seq=1 ttl=64 time=0.070 ms この時点で、相互に ping できることがわかりました。これは完璧でした。次のmy-netネットワーク構成を見てみましょう root@VM-8-11-ubuntu:~# docker ネットワーク検査 my-net [ { 「名前」: 「my-net」、 「ID」: 「1b668a5439b207d2080d95bffe829139cfa2456d691c8019a245e7f9d5a56970」、 「作成日」: 「2021-12-01T09:47:21.410882291+08:00」、 「スコープ」:「ローカル」、 「ドライバー」:「ブリッジ」、 「IPv6を有効にする」:false、 「IPAM」: { "ドライバー": "デフォルト", 「オプション」: {}, 「設定」: [ { 「サブネット」: 「192.168.0.0/16」 } ] }, 「内部」:偽、 「接続可能」: false、 「イングレス」:偽、 "設定元": { 「ネットワーク」: 「」 }, "ConfigOnly": false、 "Containers": { # 現時点では、このネットワークに次の 2 つのコンテナが追加されていることがわかりました "180fbc8b04627762a896d8a85d8cb67063c01a0f3ad8a11352ab4695b022c272": { 「名前」: 「mybusy」、 "エンドポイントID": "12929182af47e619e3405cab9981ea1671a2bc31f77d3aa589ebcf2c912c12bc", "Macアドレス": "02:42:c0:a8:00:02", "IPv4アドレス": "192.168.0.2/16", "IPv6アドレス": "" }, "3c08d592537a9593c960c9664b4724521658f26be7b658a6483e6fbfe30b58a7": { "名前": "mybusy02", "エンドポイントID": "61b08372535d751cee726fc01d4e300390e2a090dba20f1d21ba96385a7a621e", "Macアドレス": "02:42:c0:a8:00:03", "IPv4アドレス": "192.168.0.3/16", "IPv6アドレス": "" } }, 「オプション」: {}, 「ラベル」: {} } ] 質問する異なるネットワーク構成のコンテナを相互接続できますか? 答えはイエスです。 docker network connect コマンドを使用できます。手順は次のとおりです。 # まず、現在同じネットワークに存在する 2 つのコンテナ mybusy と mybusy02 を確認します $root@VM-8-11-ubuntu:~# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 3c08d592537a busybox "sh" 8 分前 8 分前 mybusy02 180fbc8b0462 busybox "sh" 8 分前 8 分前 mybusy # デフォルトネットワークにmybusy03を作成する $root@VM-8-11-ubuntu:~# docker run -it --name mybusy03 -d busybox a95b57c96f400ed44efffcc938bccce15830fa1ab5b55716261e4588c14429cb # 現在のコンテナを表示する $root@VM-8-11-ubuntu:~# docker ps コンテナID イメージ コマンド 作成ステータス ポート名 a95b57c96f40 busybox "sh" 21秒前 21秒前 mybusy03 3c08d592537a busybox "sh" 8 分前 8 分前 mybusy02 180fbc8b0462 busybox "sh" 9 分前 9 分前 mybusy # mybusy から mybusy03 に ping を試みると、同じネットワーク上にないため ping が機能しないことがわかります。$root@VM-8-11-ubuntu:~# docker exec -it mybusy ping mybusy03 ping: 不正なアドレス 'mybusy03' # ここで、docker network connect --help コマンドを実行して、$root@VM-8-11-ubuntu:~# docker network connect --help を確認します。 使用方法: docker network connect [オプション] ネットワークコンテナ コンテナをネットワークに接続する オプション: --alias strings コンテナのネットワークスコープエイリアスを追加します --driver-opt 文字列 ネットワークのドライバーオプション --ip 文字列 IPv4 アドレス (例: 172.30.100.104) --ip6 文字列 IPv6 アドレス (例: 2001:db8::33) --link list 別のコンテナへのリンクを追加する --link-local-ip strings コンテナのリンクローカルアドレスを追加します # mybusy03 を my-net ネットワークに追加します $root@VM-8-11-ubuntu:~# docker network connect my-net mybusy03 # その後、再度 ping を実行して、動作していることを確認します。すごいと思いませんか? $root@VM-8-11-ubuntu:~# docker exec -it mybusy ping mybusy03 PING mybusy03 (192.168.0.4): 56 データバイト 192.168.0.4 からの 64 バイト: seq=0 ttl=64 time=0.197 ms 192.168.0.4 からの 64 バイト: seq=1 ttl=64 time=0.087 ms このとき、ネットワークを確認すると、mybusy03 が my-net に追加されていたことがわかりました。したがって、正常に ping を実行できます。 Dockerカスタムネットワークコンテナ相互接続に関するこの記事はこれで終わりです。Dockerコンテナ相互接続に関するその他の関連コンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTML の基本 - ハイパーリンク スタイルを設定する簡単な例
>>: MySQL データベースの手動およびスケジュールされたバックアップ手順
1. transform 属性を使用して、画像を拡大せずに表示します (パスの問題は必要に応じて修正...
選択ドロップダウン リスト フォームは誰もがよく知っているかもしれませんが、デフォルトのドロップダウ...
1.html <div class="ログインボディ"> <...
残念ながら、社内の IM のテスト中に MYSQL_DATA_TRUNCATED エラーが再び発生し...
目次Matlab セントロイドアルゴリズムMatlab はクローズドな商用ソフトウェアであり、米国政...
目次0. モジュールとは何か1.モジュールの読み込み1.1 方法1 1.2 方法2 2. 輸出と輸入...
序文ファイル システムは、データの保存方法と復元方法を整理する役割を担います。 いずれにせよ、時間の...
日常の開発タスクでは、データ テーブル内のグループ化フィールドに基づいて統計データを取得するために、...
Docker の基本的な手順:アップデートパッケージ yum -y アップデートDocker仮想マシ...
リソースを節約するためにWebページの圧縮を設定する1.まず、設定を変更しましょう vim /usr...
1. カラーマッチング効果のプレビュー下の GIF に示すように、ボタンの背景色が徐々に薄くなると...
1. サーバーにDockerをインストールする yumでdockerをインストール設定ファイルを変更...
次に、Centos7 に Java+Tomcat をインストールします。インターネット上には多くの記...
プロジェクトの展開中に遭遇した落とし穴Zhihudemo を展開する際、Jenkins などの自動展...