I A*_*ser 6 networking iptables docker
我正在寻找一种简单的方法来限制我的 docker 容器,以便它们只能访问本地而不能访问互联网。
我试过使用 IPtables 来做到这一点,以下工作:
iptables -I FORWARD -i docker0 -j DROP
Run Code Online (Sandbox Code Playgroud)
但是如果 docker 服务重新启动,本地主机将无法再访问容器。
我假设“本地访问”是指您希望容器能够相互通信并与 docker 主机通信,但无法访问 docker 主机外部的网络?
你有几个选择。
1.
使用 iptables 丢弃 DOCKER 链中传入/传出外部网络接口的所有数据包。
iptables -I DOCKER -i eno1 -j DROP
Run Code Online (Sandbox Code Playgroud)
(eno1
您的情况可能有所不同;这是我的 docker 主机上的网络接口的名称。)
2.
关闭docker 主机上的ip 转发。
echo 0 > /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)
注意:这也会以相同的方式限制任何虚拟机,但对于更具安全意识的人来说,这是通用且安全的方法。
来源:
有关更多信息,请参阅https://docs.docker.com/v1.5/articles/networking/#the-world “容器与更广阔的世界之间的通信”。
归档时间: |
|
查看次数: |
8567 次 |
最近记录: |