我有一个有 2 个 IP 的服务器,我需要在它上面运行 3 个 docker 容器。
一个容器是一个 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"
Run Code Online (Sandbox Code Playgroud)
我已经尝试添加桥接网络,但我无法让它工作,因为它似乎仍在使用我的主 IP。然后我尝试在容器中静态分配 IP,这也不起作用,因为路由不起作用。
看起来这应该是可能的,我只是不确定我是在寻找错误的东西还是没有正确理解文档。