Рейтинг:2

Docker compose — отключить маршрут шлюза по умолчанию

флаг us

Можно ли запретить докеру определять маршрут по умолчанию при использовании файла yaml для создания докеров?

Если мой docker-compose.yaml определяет сетевой ipam с драйвером по умолчанию и любой подсетью, такие швы, как docker (или docker compose), автоматически назначают маршрут по умолчанию в таблицу маршрутизации докера, который подключен к этой сети). Есть ли способ отключить его?

Michael Hampton avatar
флаг cz
Ваши контейнеры не смогут общаться с внешним миром. Вы уверены, что это то, что вы хотите? Я подозреваю, что это не так. Почему вы пытаетесь это сделать?
Boris avatar
флаг us
Контейнеры @MichaelHampton используют собственное программное обеспечение для маршрутизации.
Michael Hampton avatar
флаг cz
Из беглого взгляда на документы я не вижу очевидного способа сделать это. Может быть, у кого-то еще будет хорошая идея.
флаг in
Если контейнеры будут запускать собственное программное обеспечение маршрутизации, почему бы просто не удалить маршрут по умолчанию с точки входа.
Рейтинг:0
флаг in

К сожалению нет.

Аналогичный запрос функции (#20179) уже почти 6 лет открыт в репозитории GitHub, поэтому я искренне верю, что в ближайшее время эта функция не будет реализована.

Мой текущий обходной путь, аналогичный упомянутому @Zoredache, заключается в добавлении сценария bash в ваши контейнеры и установке желаемого IP-адреса шлюза через переменные среды. Сценарий удаляет маршрут по умолчанию и добавляет его обратно с пользовательским IP-адресом в качестве шлюза.

Редактировать: суть моего скрипта:

если [-n "$GW" ]; тогда
    ip маршрут удалить по умолчанию;
    ip route добавить по умолчанию через $GW ;
фи

Если вы хотите изменить шлюз по умолчанию для вашего контейнера, вы запускаете контейнер с соответствующей переменной среды. GW=192.168.0.1 а скрипт позаботится обо всем остальном. Кроме того, не забудьте включить сценарий в CMDили же ТОЧКА ВХОДА вашего Dockerfile
ПРИМЕЧАНИЕ: Требуется iproute2 упаковка.

Возможно, это не самое красивое решение, но оно выполняет свою работу.

Paul avatar
флаг cn
Добро пожаловать в Server Fault! Похоже, у вас может быть работоспособное решение вопроса. Пожалуйста, рассмотрите возможность [редактирования](https://serverfault.com/posts/1084873/edit) вашего ответа, чтобы включить шаги, необходимые для решения проблемы. И не забудьте пройти [тур по сайту](http://serverfault.com/tour).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.