Docker-compose网络链接
随着新功能'networking'发布(link),Docker'link'功能将被弃用。我正在用一些容器做docker-compose,用'link'来连接其他的(没有任何其他命令)就没问题了。Docker-compose网络链接
由于我需要将链接配置更改为网络,因此必须在'docker-compose up'之前创建docker网络。是否有任何码头网络自动生成功能?或者用任何其他方式来连接每个容器与一些配置?
默认情况下,使用v2 yml编写docker-compose将启动项目的网络。除非您明确指出,否则您所定义的任何网络也将被创建。这里有一个例子泊坞窗,compose.yml:
version: '2'
networks:
dbnet:
appnet:
services:
db:
image: busybox
command: tail -f /dev/null
networks:
- dbnet
app:
image: busybox
command: tail -f /dev/null
networks:
- dbnet
- appnet
proxy:
image: busybox
command: tail -f /dev/null
ports:
- 80
networks:
- appnet
然后当你旋转它,你会看到它创建的网络定义:
$ docker-compose up -d
Creating network "test_dbnet" with the default driver
Creating network "test_appnet" with the default driver
Creating test_app_1
Creating test_db_1
Creating test_proxy_1
请注意,关联容器还创建了一个隐含的依赖关系,因此您可能希望在您的yml中使用depends_on
,以便在删除链接后在任何依赖项中进行显式指定。
docker-compose为自己的撰写项目创建一个默认网络。您只需将撰写项目迁移至构成yaml格式的version: '2'
或version: '3'
即可。请阅读how to upgrade了解更多信息。
对于版本2和3,您不必指定链接,因为如果未明确指定其他网络,则所有服务都将位于默认网络中。
UPDATE:要使2个容器相互通信,您可以简单地使用将解析为容器IP的服务名称。现在只需要链接,如果由于某种原因容器需要一个特定的名字,例如因为它是硬编码的。
那么如何将容器连接到容器?我需要将db容器连接到tomcat容器。我将在docker-compose中使用“链接”,如果它不会被弃用。 –
我更新了答案,以回答您评论中的问题。在这种情况下,tomcat可以简单地使用“db”(假设服务名为db) –
它实际上是我想要的。谢谢 :) –