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

推薦する

Node.js パッケージ マネージャー npm の具体的な使用方法

目次目的npm init および package.json ファイルモジュールのインストールと管理モ...

Linux の MariaDB データベースについて

目次Linux の MariaDB データベースについて1. データベースとは何ですか? 2. デー...

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

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

DockerでGPUを使用するプロセスの詳細な説明

目次tf-gpu をダウンロード取得したtf-gpuイメージに基づいて独自のイメージを構築するイメー...

React でインデックスをキーとして使用することが推奨されないのはなぜですか?

1. 古い仮想DOMと新しい仮想DOMを比較し、まずキーが同じかどうかを確認します。 2. 引き続...

HTMLタグと基本要素の学習のまとめ

1. HTML の要素とタグ<br />要素は、1 つのタグまたは 1 組のタグによって...

MySQL の日付と時刻関数の概要 (MySQL 5.X)

1. MySQLは現在の日付と時刻を取得する関数1.1 現在の日付 + 時刻 (日付 + 時刻) ...

一般的なメールボックスで正常に表示できる HTML メールを作成するためのヒント

HTML メールを送信するためのヒント: スタイルを使用してインライン CSS を記述する、使用する...

MySQL の時間タイプとモードの詳細

目次1. MySQL の時刻型2. タイムゾーンを確認する3. 不正な時間値4. 厳密モード5. 事...

MySQL 5.5.56 インストール不要版の設定方法

MySQL 5.5.56無料インストール版の設定方法をテキストコードで詳しく説明します。具体的な内容...

Vue プロジェクトのパッケージ化、マージ、圧縮により、Web ページの応答速度を最適化します。

目次序文1. リクエスト内容が大きすぎる解決: CDN の紹介リクエストリソースを圧縮する1. HT...

WAMPにインストールするとMySQLが起動できるが、再起動後に起動できなくなる問題の解決方法

初めてwampをインストールした後、すべてのサービスが正常に使用できますが、再起動するとwampのア...

Nginx で何ができるかの包括的な分析

序文この記事は、サードパーティのモジュールをロードせずにNginxで処理できることのみに焦点を当てて...

知っておくべき 18 の Web ユーザビリティの原則

世界最高のビジュアル デザイン スキルを持っていたとしても、訪問者がページ間やアイテム間を快適に移...