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

推薦する

MySql はコミットする必要がありますか?

MySQL が挿入などの操作を実行するときにコミットする必要があるかどうかは、ストレージ エンジン...

MySQLデータベースは何をするのか

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

MySQLdump コマンドを使用した MySQL データの移行

このソリューションの利点はシンプルさと使いやすさですが、欠点はダウンタイムが長くなることです。 した...

Centos7でglibcをアップグレードするとシステム異常(起動できない)になる場合の解決方法

目次問題の原因:解決:解決:私は Centos7 を使用しています (理論的にはこの方法は Cent...

MySQL フルテキスト検索の中国語ソリューションとサンプルコード

MySQL 全文検索中国語ソリューション最近、会社のプロジェクトで、データベースで中国語を検索する機...

mysql8.0 Windows x64 zip パッケージのインストールと構成のチュートリアル

MySQL 8 Windows版 zipインストール手順(ダウンロードアドレス) 1. ZIPファイ...

Windows 環境に mysql-8.0.11-winx64 をインストールする際に発生する問題を解決する

MySQL インストール パッケージをダウンロードします。mysql-8.0.11-winx64 を...

mysqldumpデータエクスポートの問題に関する詳細な議論

1. mysqldump の使用時にエラー (1064) が報告されます。これは、mysqldump...

Ubuntuデュアルシステムが起動時に停止する問題の解決方法の詳細な説明

起動時に Ubuntu デュアル システムが停止する問題の解決方法 (Ubuntu 16.04 およ...

React で setInterval 関数を使用する例

この記事はWindows 10のシステム環境をベースに、Reactの学習と使用について説明しています...

MySQL 8.0 の新機能の分析 - トランザクション データ ディクショナリとアトミック DDL

序文トランザクション データ ディクショナリとアトミック DDL は、MySQL 8.0 で導入され...

Elimination の JavaScript ソースコード

ゲームのソースコードのダウンロードアドレスを取得するためのJavaScript:クリックしてソースコ...

Vue で動的に追加されたルーティング ページの更新時に失敗する理由と解決策

目次問題の説明シナリオインターフェースリターンフロントエンドメニューの定義vuex のメソッド問題原...

きれいなJavaScriptコードの書き方を教える記事

目次1. 変数意味のある名前を使う不必要なコンテキストを追加しないようにするハードコードされた値を避...

Ubuntu で VIM を C++ 開発エディタとして設定する

1. 設定ファイルをユーザー環境にコピーし、新しい.vimフォルダを作成し、バンドルサブフォルダを作...