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は現在の日付と時刻を取得する関数

現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...

数百万のデータに対して MySQL クエリを最適化する 4 つの方法

目次1. 時間が経つにつれて限界が遅くなる理由2. 百万データシミュレーション1. 従業員テーブルと...

Django+Mysql+Redis+Gunicorn+NginxのDockerデプロイメントの実装

I. はじめにDockerテクノロジーは現在非常に人気があります。コンテナを介してプロジェクト環境を...

親子コンポーネントの通信を解決するための3つのVueスロット

目次序文環境の準備カテゴリコンポーネントアプリのコンポーネント1. デフォルトスロット2. 名前付き...

Vueは書籍ショッピングカートの機能を実現

この記事の例では、書籍ショッピングカート機能を実現するためのVueの具体的なコードを参考までに共有し...

alpineをベースにdockerfileで作成したクローラーScrapyイメージの実装

1.アルパインイメージをダウンロードする [root@DockerBrian ~]# docker ...

HTML ページジャンプとパラメータ転送の問題

HTMLページジャンプ: window.open(url, "", "...

SpringBoot を MySQL に接続してデータを取得し、バックエンド インターフェースに書き込む方法

目次1. 新しいプロジェクトを作成する2. 依存関係を追加する3. SpringコンテナにDrive...

MySQL 8.0 の統計が不正確である理由

序文Oracle であれ MySQL であれ、新バージョンで導入された新機能は、一方では製品の機能性...

MySQL でよく使われる連結文のまとめ

はじめに: MySQL では、CONCAT() 関数を使用して複数の文字列を 1 つの文字列に連結し...

HTML+JS に基づくシンプルな年齢計算ツールの実装

目次序文デモンストレーション効果HTMLコードCSSコードJavascriptコードデモアドレス序文...

オンラインMySQLオプティマイザの誤判断によって発生した低速クエリイベントを記録する

序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...

Zabbix の psk 暗号化と zabbix_get 値の組み合わせ

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbix...

Dockerにlogstashをインストールする詳細な手順

docker-compose.yml を編集し、次のコンテンツを追加します。 バージョン: '...

Angular CLI リリース パスの構成項目の簡単な分析

序文プロジェクトのリリースでは、常に特定の状況に応じたパッケージ化が必要です。Angular CLI...