2017-02-16 60 views
1

我有我的界面上的許多IP的:
inet 10.100.131.115/24 brd 10.100.131.255 scope global br0 valid_lft forever preferred_lft forever inet 10.100.131.120/24 brd 10.100.131.255 scope global secondary br0 valid_lft forever preferred_lft forever inet 10.100.131.121/24 brd 10.100.131.255 scope global secondary br0 valid_lft forever preferred_lft forever inet 10.100.131.122/24 brd 10.100.131.255 scope global secondary br0 valid_lft forever preferred_lft forever搬運工,撰寫了如何使用綁定運行容器IP別名界面上的1對1端口

泊塢窗,compose.yml:
version: '2' services: app: image: app network_mode: "bridge" volumes: - /root/docker/app/project/:/root/:ro ports: - "7999:7999" network_mode: "bridge"

如果我了單一的容器都好:
docker-compose ps Name Command State Ports
docker_app_1 /bin/sh -c uwsgi --ini wsg ... Up 0.0.0.0:7999->7999/tcp

但是當我試圖擴大我的應用我有錯誤(_ofc,因爲7999是由alredy使用docker_app_1_):
docker-compose scale app=2
警告:「應用程序」服務指定主機上的端口。
如果一臺主機上創建該服務的多個容器,端口會發生衝突。
創建和啓動docker_app_2 ...錯誤

錯誤:docker_app_2無法啓動服務程序:b'driver失敗的終點docker_app_2編程外部連接(xxxxxxxxxxxxxxxxx ...):

Bind for 0.0.0.0:7999 failed: port is already allocated'

我可以告訴docker-compose從使用IP alising的接口使用所有IP?
我需要1個IP從接口:7999 - >泊塢窗集裝箱:7999

回答

0

可以映射特定IP的一個容器,而不是0.0.0.0的缺省值。儘管如此,這並不是縮放單個服務。

services: 
    whatever: 
    ports: 
     - '10.100.131.121:7999:7999/tcp' 
    another: 
    ports: 
     - '10.100.131.122:7999:7999/tcp'