我有一个docker.compose.yml
文件,当我在其父目录中执行docker-compose up
时,它按预期工作。
我的问题是,这是一个旧版本的撰写文件,我需要将其容器集成到另一个撰写文件。旧文件的结构如下:
service1:
...
service2:
...
而目标docker-compose。Yml的结构如下:
version: '2.3'
services:
service1:
...
service2:
...
所以,我的问题是旧版本文件依赖于参数links
。我不太明白它的功能是什么。我在网上看到的文档很少,所有的文档都说链接被网络取代了。很好,但是链接的功能是什么呢?我如何替换它,从而不使用(即将获得)不推荐的特性?
使服务能够通信不需要链接——默认情况下,任何服务都可以通过该服务的名称访问任何其他服务。
你可以直接删除旧版本docker组合文件的link部分,然后通过其他容器的服务名来访问它们。
您可以选择定义网络,以便通过将它们放置在同一网络中来定义哪些服务将对其他服务可用。例如:
networks:
my_network_1:
driver: bridge
my_network_2:
driver: bridge
services:
service_1:
networks:
- my_network_1
service_2:
networks:
- my_network_1
service_3:
networks:
- my_network_2