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

推薦する

曇り空のアイコン効果を実現する純粋な CSS

効果効果は以下のとおりです​実装のアイデアbox-shadow プロパティを使用して、複数の灰色の円...

jQuery をベースにリスト ループ スクロールを実装するためのヒント (超簡単)

良いアイデアを見つけたので記録しました。私は以前、スクロール効果を実現するためにjQueryを使用し...

Python3.6-MySql 挿入ファイルパス、バックスラッシュをなくす解決策

以下のように表示されます。上記のように、置き換えるだけです。 Python3.6-MySql でファ...

Vueはタブルーティング切り替えコンポーネントのメソッド例を実装します

序文この記事では、vue に付属している vue-router.js ルーティングを使用してページン...

Docker ログが多すぎてディスクがいっぱいになる場合の対処方法

複数の Docker コンテナがデプロイされたサーバーがあり、各 Docker コンテナが stde...

Linux ディスクデバイスと LVM 管理コマンドの詳細な例

序文Linux オペレーティング システムでは、デバイス ファイルは特別なタイプのファイルです。これ...

CentOS 6 ZLMediaKit のコンパイルとインストール分析

Centos6にZLMediaKitをインストールするZLMediaKit の作者は Ubuntu ...

Reactは複雑な検索フォームの展開と折りたたみ機能を実装します

時間に余裕を持って、過去を忘れましょう。前のセクションでは、[検索] フォームとクエリおよびリセット...

高度なクローラー - JS 自動レンダリングのための Scrapy_splash コンポーネントの使用

目次1. scrapy_splash とは何ですか? 2. scrapy_splashの役割3. s...

vscode を使用したリモート Linux 開発の実装

過去に別れを告げるvscode にリモート SSH が導入される前は、Linux サーバー開発者の多...

Centos7 の起動プロセスと Systemd での Nginx の起動構成

Centos7 の起動プロセス: 1.post(電源投入時のセルフテスト) 電源投入時のセルフテスト...

MySQL における Datetime と Timestamp の使用の概要

目次1. MySQL で現在の時刻を表現するにはどうすればよいでしょうか? 2. TIMESTAMP...

Zabbix設定 DingTalkアラーム機能実装コード

必要Zabbix で DingTalk アラームを設定する方法は、Prometheus で Ding...

MySQL公式パフォーマンステストツールmysqlslapの使い方の紹介

目次導入説明書実際の経験まとめ導入MySQL は最も人気のあるオープンソース データベースとして、さ...

アルバムと写真をアルバムに保存するためのWeChatアプレット

私は現在、Xiao Nian Gao に似たビデオおよびツール アプリを開発しています。ユーザーが作...