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 の簡単な分析

推薦する

el-tree での不完全なテキスト表示の解決策

目次方法1: 水平スクロールバーを設定する最も簡単な方法方法2(新規):ドラッグバーを追加して外側の...

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

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

ウェブページでコンテンツを引用するためによく使われるHTMLタグをマスターする

長い引用には blockquote を、短い引用には q を、参考文献には cite を使用します。...

CentOS7.6 システムで yum を使用して lnmp 環境を構成する方法

1. インストールバージョンの詳細 サーバー: MariaDB サーバーバージョン: 5.5.60-...

JavaScript でよく使われるいくつかの文字列メソッドの概要 (初心者必読)

JavaScriptでよく使われるいくつかの文字列メソッド文字列は読み取り専用データです。よく使用...

ネイティブ js でカスタム難易度のマインスイーパ ゲームを実装する

この記事の例では、マインスイーパゲームを実装するためのjsの具体的なコードを参考までに共有しています...

HTML ではスペースはどのように表現されますか (どのような意味ですか)?

Web 開発では、次のような文字によく遭遇します: &nbsp;これは実際には HTML が...

MySQL学習データベース検索文DQL小百章

目次1. データの簡単な取得2. データの並べ替えと取得2.1. 基本構文2.2. ソート方向を指定...

JS 正規マッチングの落とし穴の記録

最近、JS の正規表現マッチングの落とし穴を発見したのですが、その時はあまりにも奇妙だったので、何か...

HTMLリンクを書くときは、HTTPリクエストを減らすためにサブフォルダに必ずスラッシュを追加してください。

サブフォルダーの末尾にスラッシュがない場合、2 つの HTTP リクエストが生成され、効率に影響しま...

MySQL 文字列分割の例 (区切り文字なしの文字列抽出)

区切り文字なしの文字列抽出質問の要件データベース内のフィールド値:実装効果: 1行のデータを複数行に...

nginxリバースプロキシwebSocket設定の詳細な説明

最近、プロジェクトで作業しているときに webSocket プロトコルを使用し、WeChat アプレ...

autoconfを使用してMakefileを生成し、プロジェクトをコンパイルする手順

序文Linux では、コンパイルとリンクには Makefile を使用する必要がありますが、適切な ...

CentOS 環境で NFS リモート ディレクトリ マウントを使用する手順の紹介

目次1. NFS の概要2. NFS構築1. NFSサーバーの構築2. NFSクライアントの構築3....

MySQL ストアド関数(カスタム関数)の定義と使用方法の詳細な説明

ストアド関数ストアド関数とは: SQL コードの一部をカプセル化し、特定の関数を完了して、結果を返し...