IP-адрес контейнера Docker заблокирован корпоративным брандмауэром

#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 )