如何在版本2docker定义文件中定义networking?

关于networking的文档目前非常模糊 – 你如何完成一个docker-compose.yml 创build一个虚拟networking,让它定义的服务(容器)在networking上通信?

在这种情况下,目标不是依靠预定义的networking,为docker-compose定义的集合的集合。 在docker-compose定义文件中有一个自定义的networking定义。

使用预定义的networking,如果A的应用程序使用名称B作为主机名来访问B内部监听其端口9000的应用程序,那么下面的这个工作方式将起作用。 host:port它将使用B:9000 (更具体地说,在我的具体情况下是uri mongodb://B:9000 )。

 foo: net: my-pre-defined-network container_name: A image: foo bar: net: my-pre-defined-network container_name: B image: bar ports: - "9000:9000" 

但我的观点是在docker-composeconfiguration中定义一个networking,而不是假设一个是先验定义的。

TL; DR

默认networking是自动创build的。 请参阅https://docs.docker.com/compose/networking/的开始部分了解如何解决此networking中的容器问题。

只要您使用版本2格式,撰写将为您创build一个defaultnetworking,但是如果您想自定义networking,则文档位于以下位置:

您可以在撰写文件的顶层创buildnetworks部分,并在每个服务的networks部分中引用它们。 但是,您不需要按照以下注释中所述使用默认networking。