В настоящее время у нас есть докер-контейнеры со сложными сборками, использующими supervisord, чтобы мы могли группировать сервисы вместе.Например, nginx и ssh.
Я пытаюсь перестроить их с помощью большей управляемой сервисом изоляции, связанной общими томами.Однако, без сопоставления IP-адреса с хостом , я не могу найти способ разрешить совместное использование IP-адресов, даже если порты могут быть дискретными.
Что япопытка сделать что-то вроде этого:
version: '2'
services:
web:
image: nginx
volumes:
- /data/web:/var/www
networks:
public:
ipv4_address: 10.0.0.1
ports:
- "10.0.0.1:80:80"
ssh:
image: alpine-sshd
volumes:
- /data/web:/var/www
networks:
public:
ipv4_address: 10.0.0.1
ports:
- "10.0.0.1:22:22"
networks:
public:
external: true
... где public
- предопределенная сеть Macvlan для докера.
При попытке этого я получаю сообщение об ошибке:
ERROR: for ssh Cannot start service ssh: Address already in use
Мне известно, что еще одно решение этой проблемы - ввести третий сервис для работы в качестве прокси.Тем не менее, я подумал, что это будет достаточно простой случай, чтобы не нуждаться в этом.
Можно ли настроить docker-compose / docker-network для маршрутизации через порт, чтобы позволить тому же IP-адресу бытьиспользуется для разных контейнеров?