С новыми настраиваемыми сетями докеров, если вы хотите по умолчанию запретить межконтейнерную связь и явно определить любую пару контейнеров, которые могут обмениваться данными, вам нужно будет создать до 2 ^ N сетей (где N = количество контейнеров) и точно подключать по два контейнера в каждую сеть. Есть ли у этого недостатки?
Кроме того, если я хочу разрешить только исходящие соединения от webServerContainer
к dbContainer
, но не входящий из dbContainer
к webServerContainer
, есть ли способ сделать это?
Похоже на использование icc=false
и наследие --link
функция допускает что-то подобное, но функция помечена как устаревшая.
Например:
database-access
сети, любая пара из них может разговаривать друг с другом, а я не хочуЕсть ли у кого-нибудь совет о том, как лучше всего добиться этого, начиная с Docker 17.12?
Мой ответ может быть не самым глупым, но все же, надеюсь, полезным.
Я предпочитаю делать это вручную. Docker манипулирует iptables для достижения правил доступа и межконтейнерного взаимодействия. Мне лично это не нравится (по нескольким причинам; состояние iptables обычно становится большим беспорядком, особенно если другое программное обеспечение также манипулирует iptables). Итак, я установил "iptables": false
в /etc/docker/daemon.json
на ложь:
# cat daemon.json
{
"iptables": false
}
И просто настройте сеть, как при маршрутизации трафика между сетями.
Это также означает, что вам необходимо настроить переадресацию портов (или HTTP-проксирование и т. Д.) Для доступа к контейнерам извне, и что вы должны определить свои собственные сети докеров (docker network
).
Мой ответ Вот также может помочь.