Docker, как явно разрешить любым двум контейнерам связываться, по умолчанию запретить

С новыми настраиваемыми сетями докеров, если вы хотите по умолчанию запретить межконтейнерное взаимодействие и явно определить любые пары контейнеров, которые могут обмениваться данными, вам нужно будет создать до 2 ^ N сетей (где N = количество контейнеров) и присоединить ровно два контейнера к каждой сети. Есть ли у этого недостатки?

Кроме того, если я хочу разрешить исходящие соединения только с webServerContainer на dbContainer , в идеале я хочу, чтобы моим N контейнерам без состояния было разрешено инициировать подключения к моему контейнеру базы данных, но я не хочу, чтобы мой контейнер базы данных мог инициировать подключения другим способом

Есть ли у кого-нибудь совет по наилучшему способу достижения этого, с Docker 17.12?

0
задан 4 February 2018 в 14:28
1 ответ

Мой ответ может быть не самым глупым, но все же, надеюсь, полезным.

Я предпочитаю делать это вручную. Docker манипулирует iptables для достижения правил доступа и межконтейнерного взаимодействия. Мне лично это не нравится (по нескольким причинам; состояние iptables обычно становится большим беспорядком, особенно если другое программное обеспечение также управляет iptables). Итак, я установил для "iptables": false в /etc/docker/daemon.json значение false:

# cat daemon.json 
{
  "iptables": false
}

И просто настроил сеть, как при маршрутизации трафика между сетями. .

Это также означает, что вам необходимо настроить переадресацию портов (или HTTP-проксирование и т. Д.) Для доступа к контейнерам извне, и что вы должны определить свои собственные сети докеров ( сеть докеров ) .

Мой ответ здесь также может помочь.

0
ответ дан 5 December 2019 в 06:38

Теги

Похожие вопросы