Dockerコンテナ相互接続の予備的な実践についての簡単な説明

Dockerコンテナ相互接続の予備的な実践についての簡単な説明

1. Dockerコンテナ間の相互接続

Docker は現在、軽量の仮想化ソリューションとなっています。同じホスト マシン上で、すべてのコンテナーをブリッジを介して相互接続できます。以前に Docker を使用した経験がある場合は、コンテナを相互接続するために --link を使用することに慣れているかもしれません。 Docker は徐々に改善されているため、コンテナを相互接続するにはブリッジを使用することを強くお勧めします。

2. 練習のプロセス

1. ネットワークmy-netを作成します。

[root@ChatDevOps ~]# docker network create my-net
71b42506de62797889372ea4a5270f905f79a19cf80e308119c02e529b89c94e
[root@ChatDevOps ~]# docker ネットワーク ls
ネットワーク ID 名前 ドライバー スコープ
3dec5cbb852e ブリッジ ブリッジ ローカル
6dd6dcfc2f26 ホスト ホスト ローカル
71b42506de62 マイネットブリッジローカル
4c142a02cd6b なし null ローカル

2. Docker コンテナを作成するときにブリッジ ネットワークを指定します。

[root@ChatDevOps docker]# docker create -it --name d1 --network my-net -p 8080:80 ubuntu:14.04
4776b65db566f370cad5da3a9354a12c7e4f9badab53647b7e30e1e8f343ae3d
[root@ChatDevOps docker]# docker start d1
d1

このコマンドでは、docker create は docker container create としても使用でき、この 2 つは同等です。 –name はコンテナの名前を指定し、–network はコンテナのネットワーク名を指定し、ブリッジ モードはデフォルトでブリッジになり、-p または –publish はマップされたポートを指定します。この手順で指定したネットワークが事前に作成されていない場合、コンテナは正常に起動できません。この時点で、コンテナのネットワークを作成し、コンテナを再度起動できます。

3. Docker コンテナを実行するときに、すでに作成されているネットワークを指定することもできます。

[root@ChatDevOps docker]# docker run -it --name d2 --network my-net --publish 8081:80 ubuntu:14.04 /bin/bash
ルート@07fd516911d0:/# d1にping
PING d1 (172.18.0.2) 56(84)バイトのデータ。
d1.my-net (172.18.0.2) からの 64 バイト: icmp_seq=1 ttl=64 time=0.115 ms
root@4776b65db566:/# ping d2
PING d2 (172.18.0.3) 56(84)バイトのデータ。
d2.my-net (172.18.0.3) からの 64 バイト: icmp_seq=1 ttl=64 time=0.062 ms

コンテナ名を使用して、同じブリッジ上のコンテナに ping を実行できます。 IP を直接 ping することもできます。

結論

1. docker のインストールが完了すると、docker コンテナには次の 3 つのネットワークが作成されます。

[root@ChatDevOps ~]# docker ネットワーク ls
ネットワーク ID 名前 ドライバー スコープ
3dec5cbb852e ブリッジ ブリッジ ローカル
6dd6dcfc2f26 ホスト ホスト ローカル
4c142a02cd6b なし null ローカル

2. 同じネットワーク内のすべてのコンテナ ネットワークは相互運用可能です。

3. コンテナのネットワーク構成内の DNS 構成は、公式形式を参照して、ホスト上の /etc/docker/daemon.json ファイルで構成できます。

{
 "ビップ": "192.168.1.5/24",
 "固定CIDR": "192.168.1.5/25",
 "固定cidr-v6": "2001:db8::/64",
 "mtu": 1500,
 "デフォルトゲートウェイ": "10.20.1.1",
 "デフォルトゲートウェイv6": "2001:db8:abcd::89",
 "DNS": ["10.20.1.2","10.20.1.3"]
}

実際の状況に応じて設定できます。

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

以下もご興味があるかもしれません:
  • Dockerリンクはコンテナの相互接続を実現します
  • Dockerのポートマッピングとコンテナの相互接続の詳細な説明
  • Docker 学習ノート: Weave がホスト間のコンテナ相互接続を実現
  • Dockerコンテナの相互接続方法の詳細な説明
  • docker --link コンテナ相互接続の実装

<<:  MySQL 5.7 のキーワードと予約語の詳細な説明

>>:  nestjs からフロントエンドに返されるデータ形式のカプセル化実装

推薦する

Nginx を使用してフロントエンドのクロスドメイン問題を解決する方法

序文Vue アプリケーションなどの静的ページを開発する場合、クロスドメインになる可能性のあるインター...

Mysql5.7 のグループ連結関数を使用するときにデータが切り捨てられる問題に対する完璧な解決策

一昨日、本番環境でGROUP_CONCAT関数を使用して選択したデータが切り捨てられ、最大長が102...

マウス追従ゲームを実現するjs

この記事では、マウス追従ゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内...

MySQL 5.7.18のインストール方法とMySQLサービスの起動手順の詳細な説明

MySQL は非常に強力なリレーショナル データベースです。しかし、初心者の中には、インストールや設...

Vueリストレンダリングキーの原理と機能の詳細な説明

目次リストレンダリングキーの原理と機能主要原則の分析キーの役割要約するリストレンダリングキーの原理と...

jQuery エディタ プラグイン tinyMCE の使い方

簡略化されたファイル サイズを変更し、サンプルをダウンロードします。ファイルをローカル コンピュータ...

Vue でのルータービューコンポーネントの使用に関する詳細な説明

Vue プロジェクトを開発する場合、さまざまなコンポーネント ページを表示するために切り替えることが...

MySQLトランザクションとMySQLログの詳細な説明

取引特性1. アトミック性: トランザクションの開始後、すべての操作が完了するか、まったく実行されな...

CentOS インストール mysql5.7 詳細チュートリアル

この記事では、参考までに、centOSにmysql5.7をインストールする詳細な手順を紹介します。具...

Vue が天気予報機能を実装

この記事では、天気予報機能を実現するためのVueの具体的なコードを参考までに共有します。具体的な内容...

MYSQL における char と varchar の違い

CHAR 型と VARCHAR 型は似ていますが、主に格納場所、末尾のスペース、取得方法が異なります...

MYSQL の解凍版における中国語の文字化け問題の解決方法

MYSQLの解凍バージョンがインストールされます1: 解凍後、my.ini ファイルをコピーし、バイ...

Docker 入門インストールチュートリアル (初心者版)

ドクター紹介: Docker はコンテナ関連の技術です。簡単に言うと、さまざまなソフトウェアを実行で...

Vue のすべてのカプセル化方法の簡単な概要

目次1. カプセル化API 2. グローバルツールコンポーネントを登録する3. グローバル関数をカプ...

MySQL サーバーにおける SSD パフォーマンスの問題の詳細な分析とテスト

【質問】 HP サーバーを使用しています。SSD が IOPS 約 5000 を書き込むと、%uti...