Это на самом деле не специфическая проблема докера. Похоже, что вы хотите сделать, это заблокировать доступ из внутреннего сетевого диапазона (назовем его docker-range ) к вашим другим узлам внутренней сети, но все же разрешить docker-range доступ к общедоступный интернет.
Вам необходимо изменить настройки маршрутизации и брандмауэра для достижения этой цели. Если вы работаете в Linux, я бы предложил использовать iptables
.
С примером конфигурации сети моста, приведенной в докере документации , это может выглядеть как
sudo iptables -A FORWARD --source 192.168.1.5/24 --destination 10.0.0.0/24 -j REJECT
source
будет вашей сетью Docker Bridge ( Docker-Range ), --destination
будет вашим другими внутренними хостами.
Вы должны убедиться, что трафик от контейнеров докеров проходит через этот брандмауэр. Обычно вы применяете конфигурацию на маршрутизаторе, установленном как default-gateway
в конфигурации сети Docker Bridge.