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 8.0.12 のインストールと設定のチュートリアル

この記事はMySQL 8.0.12のインストールと設定に関する詳細なチュートリアルを記録しています。...

MySQL インポート csv エラーの 4 つの解決策

これは今日私が踏んだ4つの落とし穴を記念したものです...落とし穴1:地元のせいエラー:エラー 39...

元のPATHを上書きしてコマンドが見つからないというメッセージが表示されるコマンド失敗の問題を解決する方法

同僚から、LINUX サーバー上の多くのコマンドが (コマンドが見つかりません) というプロンプトで...

count(1)、count(*)、count(列名)の実行の違いの詳細な説明

実施効果: 1. count(1) と count(*)テーブル内のデータ量が多い場合、テーブルを分...

デザイン視点技術はデザイン能力の重要な資本である

ある設計士はこう尋ねた。「実際のプロジェクト制作には参加せずに、純粋に設計だけをすることはできますか...

IDEA を使用して Tomcat を設定し、JSP ファイルを作成する方法

idea を使用して JSP ファイルを書き込む前に、jdk 環境 (ここでは説明しません) と対応...

MySQL 8.0.23 インストールの超詳細なチュートリアル

目次序文1. 公式サイトからMySQLをダウンロードする2. 解凍ファイルを設定する3. 初期化4....

Centos8 に nginx1.9.1 をインストールする詳細な手順

1.17.9 本当はもっと美味しいNginx のダウンロード アドレス: https://nginx...

JS 内の Json 文字列 + Cookie + ローカルストレージ

目次1.Json文字列1.1Json構文1.2 例2. クッキー2.1 使い方は? 3. ローカルス...

ランダムな文字を生成する Java サンプルコード

サンプルコード: java.util.Random をインポートします。 java.util.UUI...

yumコマンドの使い方

1. yumの紹介Yum (フルネームは Yellow dogUpdater、Modified) は...

CSS 要素を表示および非表示にする 9 つの方法

Web ページの制作では、要素の表示と非表示は非常に一般的な要件です。この記事では、要素を表示したり...

ElementUIテーブルのヘッダーアイコンにフローティングプロンプトを追加します。

この記事では主に、ElementUI テーブルのヘッダー アイコンにフローティング プロンプトを追加...

MySQL インデックス プッシュダウンを 5 分で理解する

目次インデックス プッシュダウンとは何ですか?インデックスプッシュダウン最適化の原理インデックスプッ...

Momentsで写真を整理するためのCSSコード

まず、Moments を開いて、写真の数が異なるいくつかのレイアウトを確認するか、以下の例を参照して...