如何在版本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一个default
networking,但是如果您想自定义networking,则文档位于以下位置:
- https://docs.docker.com/compose/compose-file/#network-configuration-reference
- https://docs.docker.com/compose/networking/#specifying-custom-networks
您可以在撰写文件的顶层创buildnetworks
部分,并在每个服务的networks
部分中引用它们。 但是,您不需要按照以下注释中所述使用默认networking。