我正在寻找一种简单的方法来限制我的 docker 容器,以便它们只能进行本地访问,而不能访问互联网。
我尝试使用 IPtables 来执行此操作,效果如下:
iptables -I FORWARD -i docker0 -j DROP
但是如果重新启动 docker 服务,本地主机将无法再访问容器。
答案1
我假设“本地访问”是指您希望容器能够相互通信并与 docker 主机通信,但无法访问 docker 主机外部的网络?
你有几个选择。
1.
使用 iptables 丢弃 DOCKER 链中传入/传出外部网络接口的所有数据包。
iptables -I DOCKER -i eno1 -j DROP
(eno1
您的情况可能有所不同;这是我的 docker 主机上的网络接口的名称。)
2.
关IP转发在 Docker 主机上。
echo 0 > /proc/sys/net/ipv4/ip_forward
注意:这也会以相同的方式限制任何虚拟机,但对于更具安全意识的人来说,这是通用且安全的方法。
来源:
看https://docs.docker.com/v1.5/articles/networking/#the-world “容器与更广阔的世界之间的通信”了解更多信息。