2017-02-16 36 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'