我有一臺服務器有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,但由於路由不起作用,因此無法工作。
這似乎應該是可能的,我只是不知道我是否正在尋找錯誤的東西或不正確地理解文檔。