我需要将2个名为 proxy1 和 proxy2 的容器链接到 myapp 。
proxy1 和 proxy2 使用docker命令运行,而 myapp 使用docker-compose.yml
我需要能够从容器 myapp
ping通 proxy1 和 proxy2我试图像这样在docker-compose.yml中使用external_links
:
services:
myapp:
build: .
ports:
- 3000:3000
external_links:
- proxy1
- proxy2
如果我做一个docker ps
,我就有这个:
CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES
2f0365826670 myapp "docker-entrypoint.s…" Up About an hour 0.0.0.0:3000->3000/tcp, 0.0.0.0:8001->8001/tcp myapp_myapp_1
bbd1f5340086 proxy "supervisord -n" Up 2 hours 127.0.0.1:5002->8080/tcp proxy2
6c3cd1eb6530 proxy "supervisord -n" Up 2 hours 127.0.0.1:5001->8080/tcp proxy1
如何从myapp访问这2个代理容器?
答案 0 :(得分:1)
我建议您执行以下操作:
创建网络:
docker network create mynetwork
将独立容器连接到网络:
docker network connect mynetwork my_container
更新您的docker-compose:
services:
myapp:
build: .
ports:
- 3000:3000
networks:
default:
external:
name: mynetwork
其他方法是检查独立contaoner网络正在使用什么:
docker inspect proxy1
并使用该网络作为撰写的外部网络。
或者您也可以在撰写中使用network_mode: "host"
,