3 回答
TA贡献1852条经验 获得超7个赞
您只需要确保要互相交谈的容器在同一网络上即可。网络是一流的docker构造,并不特定于组合。
# front/docker-compose.yml
version: '2'
services:
front:
...
networks:
- some-net
networks:
some-net:
driver: bridge
...
# api/docker-compose.yml
version: '2'
services:
api:
...
networks:
- front_some-net
networks:
front_some-net:
external: true
注意:根据“项目名称”为您的应用程序网络指定名称,该名称基于其所在目录的名称,在这种情况下front_,添加了前缀
然后,他们可以使用服务名称互相交谈。从front您可以做到ping api,反之亦然。
TA贡献1784条经验 获得超7个赞
只是@ johnharris85的一个好答案,当您运行docker compose文件时,default会创建一个“ ”网络,因此您可以将其作为外部网络添加到另一个compose文件中:
# front/docker-compose.yml
version: '2'
services:
front_service:
...
...
# api/docker-compose.yml
version: '2'
services:
api_service:
...
networks:
- front_default
networks:
front_default:
external: true
对我来说,这种方法更合适,因为我不拥有第一个docker-compose文件,而是想与之通信。
TA贡献1827条经验 获得超7个赞
从撰写文件版本3.5开始:
现在可以使用:
version: "3.5"
services:
proxy:
image: hello-world
ports:
- "80:80"
networks:
- proxynet
networks:
proxynet:
name: custom_network
docker-compose up -d将加入一个名为“ custom_network”的网络。如果不存在,它将被创建!
root@ubuntu-s-1vcpu-1gb-tor1-01:~# docker-compose up -d
Creating network "custom_network" with the default driver
Creating root_proxy_1 ... done
现在,您可以执行以下操作:
version: "2"
services:
web:
image: hello-world
networks:
- my-proxy-net
networks:
my-proxy-net:
external:
name: custom_network
这将创建一个将在外部网络上的容器。
我在文档中找不到任何参考,但是它有效!
- 3 回答
- 1 关注
- 3468 浏览
添加回答
举报