Docker撰写 – 为networking名称添加标识符

我试图在docker-compose.vs.debug.yml文件中创buildnetworking:

networks: myNetwork: driver: bridge 

但docker添加一些标识符:

dockernetworkingLS – >

 NETWORK ID NAME DRIVER SCOPE 0e1fec1a9a30 dockercompose1163770330_myNetwork bridge local 

如果有任何选项可以这样命名:

 NETWORK ID NAME DRIVER SCOPE 0e1fec1a9a30 myNetwork bridge local 

我需要它在不同的项目上自动连接两个容器。

如果您有docker-compose创buildnetworking,它将确定名称本身。 通常,它会查看docker-compose.yml所在目录的名称,并将其用作前缀。 根据您所显示的名称,看起来该docker-compose.yml文件位于名为dockercompose1163770330的目录中。 它将它与您指定的myNetwork名称相结合,并创build一个名为dockercompose1163770330_myNetwork的networking。

如果你想控制networking的确切名称,你有两个select。

  1. 使用在docker-compose之外创build的networking(“外部”networking)。
 networks: default: external: name: myNetwork 

这意味着其他东西已经创build了networking。 如果你还没有这样的networking,创build它很容易。

 docker network create myNetwork 
  1. (如果可能)确定visual-studio如何命名它的path,并将该path更改为static。 不pipe这是可能的,还是如何,我都不知道。 但是,如果您可以控制dockercompose1163770330并使其更喜欢不同,那么您可以预测从中创build的networking名称。

我假设你使用VS2017 dcproj。 我通过在dcproj项目中手动创buildnetworking作为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文件中,您可以指定一个外部networking:

 networks: default: external: name: customnetwork 

要求您在其他项目之前启动dcproj,或将相同的prebuild exec添加到应共享networking的所有项目。