Docker Compose にネットワーク モードを追加する

  1. Docker でネットワーク情報を収集する
  2. Docker Compose でネットワーク モードを構成する
  3. Docker Swarm でネットワーク モードを構成する
Docker Compose にネットワーク モードを追加する

デフォルトでは、単一のネットワークが Docker Compose によってアプリケーションに作成され、そこに各コンテナーがサービスとして追加されます。 ネットワーク上のすべてのコンテナは、単一のネットワーク上のコンテナからアクセスして見つけることができます。

Docker Compose でネットワーク モードを定義することにより、ネットワークを構成できます。 この記事では、Docker Compose でネットワーク モードを使用してネットワークを定義および設定する方法について説明します。

Docker でネットワーク情報を収集する

特定のコンテナーまたはサービスを通過するネットワーク モードを構成する場合は、最初に追加情報を収集する必要があります。 コマンド docker network ls を実行すると、現在の Docker ネットワークを一覧表示できます。

次の出力のようになります。

出力:

NETWORK ID          NAME                         DRIVER
17cc61428fef        bridge                       bridge
098522f7fce0        sample_default               bridge
1ce3c472afc6        test_default                 bridge
8fd07e456e6c        host                         host
3b5787919641        none                         null

このコマンドは、上記の前のコマンドを使用してコンテナー、サービス、またはネットワークの名前または ID を認識している必要がある場合に便利です。

Docker Compose でネットワーク モードを構成する

Docker Compose バージョン 3 では、network_mode: パラメーターとその値を指定することで、YAML ファイルでネットワーク モードを使用できます。 したがって、version: パラメータと値 3 または 3.0 を使用して、使用している Docker Compose のバージョンを指定してください。

例:

version: "3"
services:
  app:
    network_mode: "host"

上記の例では、ネットワーク モードとして host の例を使用しましたが、代わりにコンテナーまたはサービスを指定できます。 Docker の公式ドキュメントから、サービスのネットワーク モードを定義するときに使用できる複数の値を次に示します。

例:

network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"

以前に情報を収集したので、ネットワーク モードを定義するときにネットワーク名または ID を使用できます。

例:

network_mode: "container:sample_default"
network_mode: "container:1ce3c472afc6"

Docker Swarm でネットワーク モードを構成する

Docker アプリケーションを実行する物理マシンまたは仮想マシンの集合は、Docker Swarm と呼ばれます。 Docker Swarm と呼ばれるコンテナ オーケストレーション ソリューションを使用すると、ユーザーはさまざまなホスト マシンにまたがる多数のコンテナを制御できます。

マシンのグループが一緒にクラスター化されると、使い慣れた Docker コマンドを引き続き実行できますが、クラスター内のデバイスがそれらを実行するようになります。

残念ながら、Docker Compose と Swarm はうまく組み合わせられません。 したがって、network_mode パラメータを使用する代わりに、次のように、networks パラメータを使用して手動でネットワークを定義する必要があります。

例:

version: "3.0"
services:
    app:
        networks:
            - host

networks:
    host:
        name: [Your Network Mode Value]
        external: true
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

関連記事 - Docker Compose