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 の order by ステートメントの最適化方法の詳細な説明

この記事では、ORDER BY文の最適化について学びます。その前に、インデックスの基礎的な理解が必要...

Vuex のコアコンセプトと基本的な使用法の詳細な説明

目次導入始めるインストール①直接ダウンロードする方法②CND法③NPM方式④糸法NPMインストールの...

Web開発でボックスを中央に配置するいくつかの方法

1. ボックスを中央に配置するいくつかの方法を記録します。 1.0、マージン幅固定、高さ中央配置。 ...

海外でダウンロードできる25個の新鮮で便利なアイコンセット

1. Eコマースアイコン2. アイコンスイーツ2 3. 携帯電話アイコンパック4. 旗アイコンセット...

int(3)とint(10)の値の範囲はmysqlで同じですか?

目次質問:答え:現実:知識ポイント結論は:要約する質問: MySQLフィールド、unsigned i...

HTML5で見逃せないAPIやヒントのまとめ

これまでのブログ投稿では、HTML 5 ではあまり使われていないが注目すべき API やヒントに焦点...

JSはキャンバス技術を使用してeChartsの棒グラフを模倣します

Canvas は HTML5 の新しいタグです。js を使用して Canvas 描画 API を操作...

Centos8環境でSSHポート番号を変更する方法

目次序文始める序文サーバーのデフォルトの SSH ポート番号は通常 22 であるため、ほとんどのユー...

露滴アニメーション効果を実装するための Three.js サンプル コード

序文みなさんこんにちは。CSS ウィザードの alphardex です。この記事では、three.j...

mysql バッチで大量のデータを削除する

mysql バッチで大量のデータを削除する1000万件のレコードを持つテーブル(syslogs)があ...

Apache ab同時負荷ストレステストの実装方法

腹筋コマンドの原則Apache の ab コマンドは、マルチスレッドの同時リクエストをシミュレートし...

docker view container log コマンドの実装

なぜログを読む必要があるのでしょうか?たとえば、コンテナの起動に失敗したがプロンプトが表示されない場...

モバイル端末での Vue2.x Picker のグローバル呼び出し実装

目次ピッカーコンポーネントとはピッカーコンポーネントの問題解決オプションの説明解決ディレクトリ部門P...

reduxの動作原理と使い方の説明

目次1. redux とは何ですか? 2. 還元の原則3. redux の使い方は? (1)redu...

Centos8 で NIS ドメイン サービスをセットアップおよび構成するための詳細な手順

目次NIS の紹介ネットワーク環境: 1. 環境の準備(両方のノードが必要) 2.nisマスターサー...