я много 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
докера-компоновать, как запустить контейнер с затруднительным 1-к-1 порты на интерфейсе IP алиасов
докер-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 является используемыми настройками уже 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-адреса интерфейса, которые используют IP-алистинг?
я нужен 1 IP с интерфейса: 7999 -> Докер контейнер: 7999