Я хочу выполнить Docker-контейнер в моей домашней локальной сети, но не хочу, чтобы он имел доступ к чему-либо в моей локальной сети.
На основе ответов на вопрос переполнения стека ОтключитьДоступ к локальной сети из контейнера Docker . На компьютере, на котором будет запускаться контейнер, я сделал следующее:
sudo iptables -A INPUT -i docker0 -d 192.168.0.0/16 -j DROP
sudo iptables -I FORWARD -i docker0 -d 192.168.0.0/16 -j DROP
sudo iptables -I FORWARD -i docker0 -d 192.168.0.0/16 \
-m state --state ESTABLISHED,RELATED -j ACCEPT
Это работает.Контейнеры Docker на моей машине не видят мою локальную сеть, но они могут подключаться к Интернету.
К сожалению, они каким-то образом получают настройки DNS из DHCP моей локальной сети, и DNS указал, что мой DHCP находится в моей локальной сети.,Так что теперь они не могут разрешать имена хостов.
Как я могу переопределить настройки DNS для внешнего DNS (например: 8.8.8.8)?Для одного контейнера было бы неплохо, но для всех контейнеров Docker, работающих на этой машине, было бы еще лучше.
Мои образы Docker основаны на alpine: 3.6, на случай, если это имеет значение, и я использую версию Docker.18.09.2.