网络相关的文档目前存在很大的不明确性,如何创建一个能够在其中定义的服务(容器)之间通信的虚拟网络?
在这种情况下,我们希望不依赖预定义的网络,而是将网络定义完全包含在docker-compose定义文件中。
如果使用预定义网络,则以下内容将工作(假设应用程序中的A
使用名称B
作为主机名来访问打包在B
中监听其9000端口上的应用程序,并且它将使用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-compose配置中定义一个网络,而不是假定先前已定义了一个网络...
简述
默认网络会自动创建。参见https://docs.docker.com/compose/networking/的开头部分,了解如何在此网络中处理容器。