Docker Compose - 将标识符添加到网络名称

Mar*_*kov 13 docker .net-core docker-compose visual-studio-2017

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

networks:
  myNetwork:
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

但是docker添加了一些标识符:

docker network ls - >

NETWORK ID          NAME                                         DRIVER              SCOPE 
0e1fec1a9a30        dockercompose1163770330_myNetwork            bridge              local
Run Code Online (Sandbox Code Playgroud)

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

NETWORK ID          NAME                                         DRIVER              SCOPE
0e1fec1a9a30        myNetwork                                    bridge              local
Run Code Online (Sandbox Code Playgroud)

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

Fra*_*ans 13

根据https://docs.docker.com/compose/networking/

也可以给网络一个自定义名称(从 3.5 版开始):

version: "3.5"
networks:
  frontend:
    name: custom_frontend
    driver: custom-driver-1
Run Code Online (Sandbox Code Playgroud)

所以你可以选择myNetwork像这样简单地命名你的网络:

networks:
  myNetwork:
    name: myNetwork
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望您的容器加入现有网络(我知道您说您想docker-compose为您创建网络,但对于阅读此问题的人来说,这可能会有所帮助),https://docs.docker.com/compose/网络/状态:

如果您希望容器加入预先存在的网络,请使用以下external选项:

networks:
  default:
    external:
      name: my-pre-existing-network
Run Code Online (Sandbox Code Playgroud)


Dan*_*owe 10

如果你有docker-compose创建网络,它将确定名称本身.通常,它会查看docker-compose.yml所在目录的名称,并将其用作前缀.根据您显示的名称,此docker-compose.yml文件似乎位于名为的目录中dockercompose1163770330.它将此与myNetwork您指定的名称相结合,并创建一个名为的网络dockercompose1163770330_myNetwork.

如果要控制网络的确切名称,则有两种选择.

  1. 使用在docker-compose之外创建的网络("外部"网络).
networks:
  default:
    external:
      name: myNetwork
Run Code Online (Sandbox Code Playgroud)

这意味着其他人已经创建了网络.如果您还没有这样的网络,那么创建它很容易.

docker network create myNetwork
Run Code Online (Sandbox Code Playgroud)
  1. (如果可能的话)确定visual-studio如何命名路径,并将该路径更改为静态路径.无论这是可能的,还是如何,我都不知道.但是,如果您可以控制dockercompose1163770330并使其与您喜欢的不同,那么您可以预测从中创建的网络名称.

  • 这里只是一个快速的提示,`networks:`是一个顶级标签,因此,必须与`services:`标签位于同一顶层,这意味着**没有缩进**!= :)否则您将收到语法错误.仅供参考:如何检查语法:`docker-compose -f ./dc.yaml config`. (2认同)