Docker-compose ネットワークの詳細な例

Docker-compose ネットワークの詳細な例

今日は Docker でのネットワーク設定を試し、後で忘れないようにプロセスを記録しました。

(システム: Centos 7.4、docker バージョン: 18.03.1-ce、docker-compose バージョン 1.18.0)

猫 docker-compose.yml 
バージョン: '3'
サービス: 
 テスト1:
  image: busybox:latest # 画像はbusyboxです
  エントリポイント: #コンテナがすぐに終了しないように、コンテナの起動後にtopコマンドを実行します - top
  ネットワーク:
   backend: # 指定されたネットワーク バックエンドを使用し、ネットワーク エイリアスを test1 に設定します。
    aliases: # ネットワークエイリアスを設定したら、他のコンテナの test1 に ping してコンテナ - test1 にアクセスできます。

 テスト2:
  画像: busybox:最新
  エントリポイント:
   - トップ
  ネットワーク:
   バックエンド:
    エイリアス:
     -テスト2

ネットワーク:
 バックエンド:

起動する

docker-compose を起動 -d

ドッカーps -a
コンテナID イメージ コマンド 作成ステータス ポート名
4d05ceb2088d busybox:latest "top" 5秒前 4秒前 ibaboss_test2_1
f4ccafa24664 busybox:latest "top" 5秒前 4秒前 ibaboss_test1_1

docker exec -it 4d05ceb2088d /bin/sh
/# pingテスト1
PING test1 (172.19.0.2): 56データバイト
172.19.0.2 からの 64 バイト: seq=0 ttl=64 time=0.061 ms
172.19.0.2 からの 64 バイト: seq=1 ttl=64 time=0.062 ms

ibaboss_test1_1にping
PING ibaboss_test1_1 (172.19.0.2): 56 データバイト
172.19.0.2 からの 64 バイト: seq=0 ttl=64 time=0.045 ms
172.19.0.2 からの 64 バイト: seq=1 ttl=64 time=0.056 ms
172.19.0.2 からの 64 バイト: seq=2 ttl=64 time=0.061 ms

# ネットワークでは、コンテナ名またはネットワークエイリアスを介して通信できます

Compose コンテナ名の形式は次のとおりです: <プロジェクト名><サービス名><シリアル番号>

プロジェクト名とサービス名はカスタマイズできますが、コンテナの名前付けを完全に制御したい場合は、次のタグを使用して指定できます。

コンテナ名: アプリ
docker-compose_v1.yml をキャットします 
バージョン: '3'
サービス: 
 テスト1:
  画像: busybox:最新
  エントリポイント:
   - トップ
  コンテナ名: test1
  ネットワーク:
   - バックエンド

 テスト2:
  画像: busybox:最新
  エントリポイント:
   - トップ
  コンテナ名: test2
  ネットワーク:
   - バックエンド

ネットワーク:
 バックエンド:

起動する

docker-compose -f docker-compose_v1.yml アップ -d

ドッカーps -a
コンテナID イメージ コマンド 作成ステータス ポート名
132859fc77c2 busybox:latest "top" 約 1 分前 約 1 分前 test2
cd0a78dc9bd4 busybox:latest "top" 約 1 分前 約 1 分前 test1

docker exec -it 132859fc77c2 ping test1
PING test1 (172.19.0.2): 56データバイト
172.19.0.2 からの 64 バイト: seq=0 ttl=64 time=0.070 ms
172.19.0.2 からの 64 バイト: seq=1 ttl=64 time=0.068 ms
172.19.0.2 からの 64 バイト: seq=2 ttl=64 time=0.059 ms

補充:

Docker Compose の複数コンテナ共有ネットワークの問題

数日前、docker composeを使用して複数のコンテナを記述し、コンテナネットワークを共有することを計画しましたが、常にエラーが発生しました。今日もう一度試してみたところ、ポートのバインドの問題が原因であることがわかりました。ポートは、ネットワークカードを生成するコンテナにのみバインドできます。他のウィンドウにバインドされている場合は、エラーが報告されます。次のコードでは、mysqlサービスがnginxネットワークカードを共有しています。mysqlでポート:3306を使用すると、実行に失敗します。3306をnginxに移動して、正常に起動します。

バージョン: '3.3'
サービス:
nginx:
画像: "lnp_php"
# コンテナ名: "lnmp_nginx"
ポート:
- 「80:80」
- 「443:443」
- 「3306:3306」
さらす:
- 「3306」
ボリューム:
- /home/www/php:/home/www:rw
# 依存:
# -mysql
リンク数:
# -mysql
マイスク:
画像: 「mysql」
# コンテナ名: "lnmp_mysql"
ポート数:
# - 「3306:3306」
# さらす:
# - "3306"
ボリューム:
- /home/docker/conf/mysql_w:/etc/mysql:rw
環境:
-MYSQL_ROOT_PASSWORD=123456
依存:
- nginx
ネットワークモード: "サービス:nginx"

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

以下もご興味があるかもしれません:
  • Docker-compose の詳しい説明とサンプルコード
  • Docker-composeのインストールと設定の詳細な手順
  • Docker-Compose の詳細な使用例
  • Ubuntu 15.10 インストール docker および docker-compose チュートリアル
  • docker-compose を使用して AspNetCore 開発環境を構築する
  • docker-compose ネットワーク設定についての簡単な説明
  • docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析
  • docker と docker-compose による eureka の高可用性の実現の詳細な説明
  • Docker-compose を使用して GitLab をデプロイする方法
  • Linux で docker-compose を使用したソフトウェア構成の詳細な説明

<<:  Bootstrap FileInputは画像アップロード機能を実装します

>>:  MySQLインジェクションバイパスフィルタリング技術の概要

推薦する

MySQLの7種類のログの概要

MySQL には次のログ ファイルがあります。 1: 再実行ログ2: ロールバックログ(元に戻すログ...

Dockerでデータディレクトリを移行する方法

目次ディスク使用量の表示ディスク クリーンアップ (軽々しく使用しないでください)データの移行ディス...

VMWARE で Centos8 仮想マシンをコピーすることによって発生する IP 損失の問題の解決策

VMwareでcentos8サービスをインストールしてコピーすると、次の問題が発生します。 コピー前...

包括的なウェブサイト評価ソリューション

<br />「XXXのウェブサイトを見てみませんか?」といった質問をされることもあります...

ウィンドウ内のさまざまな距離/スクロール距離の正確な計算の概要

通常、プロジェクト開発では、マージン、位置、座標などを扱う必要があります。悲劇なのは、これらの概念が...

MySQL が InnoDB テーブルが独立したテーブルスペースか共有テーブルスペースかを判断する方法の詳細な説明

序文InnoDB はデータをテーブルスペースに保存します。デフォルト設定では、初期サイズが 10 M...

フォームから Vue ElementUI を使用してログイン効果を実装する例

目次1. ElementUIで基本的なスタイルを構築する2. [送信]ボタンをクリックして、アカウン...

Linux での Python スクリプトの自動起動とスケジュール起動の詳細な手順

1. Pythonは起動時に自動的に実行されますPython の自己起動スクリプトがauto.pyで...

MySQL 4 の一般的なマスタースレーブレプリケーションアーキテクチャ

目次1つのマスターと複数のスレーブのレプリケーションアーキテクチャマルチレベルレプリケーションアーキ...

MySQLのどのフィールドがインデックスに適しているかについての簡単な説明

目次1 データベース インデックスを作成するための一般的なルールは次のとおりです。 2. 数千万件の...

HTML面接の質問の要約

1. doctypeの役割、厳密モードと混合モードの違い、そしてその重要性1. 構文形式: <...

Linux運用保守ツールSupervisor(プロセス管理ツール)のインストールと使用

1. はじめにSupervisor は Python で開発された汎用プロセス管理プログラムです。通...

Docker 環境で JMeter+Grafana+influxdb ビジュアル パフォーマンス監視プラットフォームを構築するチュートリアル

目次1. Dockerをインストールする2. influxDBをインストールして設定する3. Gra...

Vueのフロントエンドとバックエンドのデータのやり取りと表示を理解する方法

目次1. 技術概要2. 技術的な詳細1. インターフェースからバックエンドデータを取得する2. フロ...

MySQL の 4 つのトランザクション分離レベルの詳細な説明

この実験のテスト環境: Windows 10+cmd+MySQL5.6.36+InnoDB 1. ト...