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
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn