#docker #routing
#docker #маршруты
Вопрос:
У меня есть сервер, который должен взаимодействовать с почтовым сервером (IMAP, через порт 143) внутри корпоративной сети.
Чтобы добраться до сервера IMAP, я попросил ИТ-команду открыть маршрут через корпоративный брандмауэр (используя мой IP-адрес). Все работало нормально.
Теперь я хочу связаться с почтовым сервером из контейнера Docker, но это не работает, потому что другой IP-адрес источника (действительно, контейнера).
Есть ли способ связаться с почтовым сервером (или вообще с другой службой) из контейнера Docker без редактирования правил корпоративного брандмауэра?
Комментарии:
1. Какой у вас хост-компьютер? Linux, Windows, Mac? Если вы используете Linux, вы всегда можете использовать сеть хоста :
docker run --rm -d --network host --name my_nginx nginx
2. Я на компьютере с Linux, ваше решение работает нормально! Спасибо!
3. Нет. Это отлично работает для одного контейнера. Как мне настроить сеть и службы, чтобы решить эту проблему?
4. Тогда используете docker-compose?
5. ДА. Но если я настрою
network_mode: "host"
на все службы, я не смогу использоватьdepends_on
илиlinks
(см.: docs.docker.com/compose/compose-file/#network_mode )