Docker-compose.vs.debug.ymlファイルにネットワークを作成しようとしています:
networks:
myNetwork:
driver: bridge
しかし、いくつかの識別子を追加するドッカー:
docker network ls->
NETWORK ID NAME DRIVER SCOPE
0e1fec1a9a30 dockercompose1163770330_myNetwork bridge local
このように名前を付けるオプションがある場合:
NETWORK ID NAME DRIVER SCOPE
0e1fec1a9a30 myNetwork bridge local
別々のプロジェクトの2つのコンテナーを自動的に接続するために必要です。
Docker-composeでネットワークを作成すると、名前自体が決定されます。通常、これはdocker-compose.ymlが配置されているディレクトリの名前を調べ、それをプレフィックスとして使用します。あなたが示した名前に基づいて、このdocker-compose.ymlファイルはdockercompose1163770330
という名前のディレクトリにあるようです。これを指定したmyNetwork
名と組み合わせて、dockercompose1163770330_myNetwork
という名前のネットワークを作成します。
ネットワークの正確な名前を制御する場合は、2つのオプションがあります。
networks:
default:
external:
name: myNetwork
これは、他の何かがすでにネットワークを作成していることを意味します。このようなネットワークをまだお持ちでない場合は、簡単に作成できます。
docker network create myNetwork
dockercompose1163770330
を制御して、好みに合わせて変更できる場合は、そこから作成されるネットワーク名を予測できます。VS2017 dcprojを使用していると思います。これを解決するには、dcprojプロジェクトでPreBuildEventとしてネットワークを手動で作成します。ビルド前のターゲットを.dcprojファイルに追加します。
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command="echo Creating external docker network" />
<Exec Command="docker network create customnetwork" IgnoreExitCode="true" />
</Target>
次に、docker-composeファイルで外部ネットワークを指定できます。
networks:
default:
external:
name: customnetwork
他のプロジェクトの前にdcprojを開始するか、ネットワークを共有するすべてのプロジェクトに同じprebuild execを追加する必要があります。