我有一台服务器有2个IP,我需要运行3个docker容器。通过docker-compose为Docker容器分配出站IP
一个容器是一个nginx反向代理,它接收第一个IP上的传入连接。
第二个容器使用相同的IP连接外部,我有这部分工作。
我现在需要做的是建立一个网络,让最后一个容器通过第二个IP访问外部服务,但仍然允许nginx容器访问它的端口。
有没有办法在docker-compose中做到这一点?如果我不必这样做,我宁愿不去kubernetes/swarm路径。
version: '2'
services:
nginx:
image: jwilder/nginx-proxy
environment:
- VIRTUAL_PORT=8000
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
ports:
- "80:80"
python:
depends_on:
- nginx
image: python:2.7-slim
restart: always
working_dir: /usr/src/app/
- VIRTUAL_HOST=python.mydomain.com
expose:
- "8000"
volumes:
- "./:/usr/src/app/"
command: bash -c "~/do_some_stuff.sh"
我已经尝试添加一个桥接网络,但我无法得到它的工作,因为它似乎仍然使用我的主要IP。然后我尝试在容器中静态分配IP,但由于路由不起作用,因此无法工作。
这似乎应该是可能的,我只是不知道我是否正在寻找错误的东西或不正确地理解文档。