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 からフロントエンドに返されるデータ形式のカプセル化実装

推薦する

Linuxはデュアルネットワークカードボンドとドライバーインターフェースを使用する

債券とは何かNIC ボンドは、実稼働シナリオでよく使用されるテクノロジーです。複数の NIC を 1...

LinuxにNginxをインストールする詳細な手順

1. Nginxのインストール手順1.1 公式サイトの紹介http://nginx.org/en/d...

Linux でのスケジュールされたタスクと遅延タスクの詳細な説明

で+ 時間 17:23に at> touch /mnt/file{1..9} ##アクションを...

Vue.jsの機能コンポーネントに関する包括的な理解

目次序文React 関数コンポーネントVue (2.x) の機能コンポーネント🌰 例: el-tab...

Win7 での Mysql 5.7.17 winx64 インストール チュートリアル

ソフトウェア バージョンとプラットフォーム: MySQL-5.7.17-winx64、win7 Ho...

JS を使って CSS3 で丸い角を実装する方法

IE で CSS3 を使用して角を丸くする方法を探していたときに、例を見つけました。まだテストして...

Linux のソフトリンクとハードリンクの詳細な説明

目次1. ファイルとディレクトリの基本的な保存2. Inコマンドの紹介(1)lnコマンドの基本情報を...

require loaderの実装原理の深い理解

序文Node は新しいプログラミング言語ではなく、JavaScript のランタイムに過ぎないとよく...

JavaScript の基礎におけるデータ型の詳細な説明

目次1. データ型1.1 なぜデータ型が必要なのか? 1.2 変数のデータ型1.3 データ型の分類2...

NginxはIP経由の直接アクセスを禁止し、カスタム500ページにリダイレクトします

設定ファイルに直接 サーバー{ listen 80 default; # IPへの直接アクセスを禁止...

IEの送信フォームの記録履歴クリックリターン情報を実現するためのCSSスタイルコントロールはまだ残っています

これは主に CSS スタイルのコントロールと META タグです。コードをコピーコードは次のとおりで...

Alibaba Cloud Docker Yum ソースを使用した Docker 17.03.2 の CentOS7 オンラインインストールの詳細説明

参照ドキュメント公式 Docker インストール ドキュメント: https://docs.dock...

vue + Electron でデスクトップ アプリケーションを作成するためのサンプル コード

1.vueパッケージングここでは、vueネイティブパッケージングコマンドを使用してvueプロジェクト...

HTML テーブル タグ チュートリアル (36): テーブル ヘッダーの背景色属性 BGCOLOR

<TH> タグは、テーブル内のヘッダーのプロパティを設定するために使用されます。以下の...

jQueryはシンプルなボタンの色の変更を実装します

HTML と CSS で、ボタンの色を設定したいとします。 目的の効果は得られますが、プロセスはかな...