Dockerはmacvlanをベースにホスト間コンテナ通信を実装する

Dockerはmacvlanをベースにホスト間コンテナ通信を実装する

2 台のテスト マシンを見つけます。

[root@docker1 centos_zabbix]# docker ネットワーク ls
ネットワーク ID 名前 ドライバー スコープ
19ac9a55bedb ブリッジ ブリッジ ローカル
0a3cbfe2473f ホスト ホスト ローカル
aab77f02a0b1 なし null ローカル
 
[root@docker1 centos_zabbix]# docker ネットワーク作成 --driver macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.254 -o parent=ens33 macvlan_1
このコマンドは両方を実行し、macvlanネットワークタイプを追加することを意味します [root@docker1 centos_zabbix]# docker network ls
ネットワーク ID 名前 ドライバー スコープ
19ac9a55bedb ブリッジ ブリッジ ローカル
0a3cbfe2473f ホスト ホスト ローカル
4e5ccdc657e1 macvlan_1 macvlan ローカル
aab77f02a0b1 なし null ローカル

両方のサーバーに centos6.9:v2 バージョンのイメージがあることを確認します。

1 台のマシンで実行:
[root@docker1 centos_zabbix]# docker run -it --network macvlan_1 --ip=10.0.0.155 centos6.9:v2 /bin/bash
1 台のマシンで実行:
[root@docker2 opt]# docker run -it --network macvlan_1 --ip=10.0.0.156 centos6.9_ssh:v2 /bin/bash
[root@9ea3f69d89c4 /]# 10.0.0.155にpingを実行
PING 10.0.0.155 (10.0.0.155) 56(84) バイトのデータ。
10.0.0.155 からの 64 バイト: icmp_seq=1 ttl=64 time=2.15 ms
10.0.0.155 からの 64 バイト: icmp_seq=2 ttl=64 time=0.569 ms ここで別のコンテナに ping できるということは、コンテナが同一であることを示しています^C

この種の問題は

IP アドレスは重複できません。重複すると混乱が生じます。たとえば、2 つの IP アドレスが両方とも 155 の場合、ping155 は ping できますが、ssh はどのマシンに接続されているかわかりません。実際には接続できず、リンクが間違っています。そのため、IP アドレスを管理するためにオーバーレイ ネットワークが導入されています。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerコンテナ間のホスト間通信 - オーバーレイベースの実装方法
  • Dockerコンテナの接続と通信の実装
  • Dockerコンテナのホスト間マルチネットワークセグメント通信ソリューションの詳細説明
  • Docker のホスト間コンテナ通信オーバーレイ実装プロセスの詳細な説明
  • Dockerコンテナのホスト間通信におけるダイレクトルーティングの詳細な説明
  • Dockerコンテナ間の通信と外部ネットワーク通信の操作

<<:  アルバムと写真をアルバムに保存するためのWeChatアプレット

>>:  Centos 7 mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar の簡単な分析

推薦する

JavaScript でシンプルなタイマーを実装する

この記事では、参考までに簡単なタイマーを実装するためのJavaScriptの具体的なコードを紹介しま...

WeChatアプレットbindtapとcatchtapの違いの詳細な説明

目次1. イベントとは何ですか? 2. イベントの使い方3. バインドタップとキャッチタップの違い4...

Echart Bar の 2 列チャート スタイルの最も完全な詳細な説明

目次序文インストールと設定1. Echartsをインストールする2. Echartsをグローバルに導...

CSS フロントエンドページレンダリング最適化属性 will-change の具体的な使用法

序文スクロールやサイズ変更などのスクロール イベントがトリガーされると、トリガーの頻度が非常に高くな...

要素の属性を削除する JS removeAttribute() メソッド

JavaScript では、要素の removeAttribute() メソッドを使用して、指定され...

Tomcatディレクトリ構造の詳細な説明

目次ディレクトリ構造binディレクトリconfディレクトリlibディレクトリwebapps ディレク...

デザイン理論:人間中心のグリーンデザイン

「人間中心」と「グリーンデザイン」という2つの視点から考える——デザイン業界の同僚とも議論する2つの...

2秒以内にHTMLページ内の他のページにリダイレクトする方法

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

Vueは不規則なスクリーンショットを実装する

目次SVG による画像キャプチャCSS部分エフェクト画像表示ソースコードアドレスこれまで見てきたもの...

Dockerを使用してクローンリポジトリを使用してGitイメージを構築する

概要私は 1 年以上 Docker を使用しています。最近、サービスをすばやくオーケストレーションし...

MySQLの再帰問題

MySQL自体は再帰構文をサポートしていませんが、自己接続を通じていくつかの単純な再帰を実現できます...

nginxのシンプル転送リクエストのサーバーとロケーション設定の詳しい説明

nginx のサーバーと場所の構成を簡単に整理してみましょう。たとえば、URL: www.mask_...

Windows 10 と MySQL 5.5 のインストールとインストールなしの使用の詳細なチュートリアル (画像とテキスト)

この記事では、Windows 10環境でのMySQL 5.5のインストールと使用方法を紹介します。リ...

MySQLのスケジュールタスクが正常に実行できない原因の分析と解決

目次序文原因分析と解決策スケジュールされたタスクを迅速に実行する要約する序文データベースのスケジュー...

ES6 ループと反復可能オブジェクトの例

この記事では、ES6 の for ... of ループについて説明します。古い方法以前は、JavaS...