如何使用iptables保护docker容器

时间:2018-04-30 18:33:00

标签: ubuntu docker firewall iptables ufw

我正在尝试保护容器不受外部IP访问“0.0.0.0”

的影响

我想将一些容器配置为公共访问,而其他容器则限制为某些IP。

sudo iptables -N DOCKER-USER
sudo iptables -I DOCKER-USER -j DROP

# where x.x.x.x is external IP allowed
sudo iptables -I DOCKER-USER -s x.x.x.x -j ACCEPT

# where yyyy is the external port that will be allow
sudo iptables -I DOCKER-USER -p tcp --dport yyyy -j ACCEPT

sudo iptables -I FORWARD -o docker0 -j DOCKER-USER

它正常工作,但重启后,此配置已重置并停止工作。

我已经尝试将此脚本放在 /etc/rc.local ,但重启后不会执行。

我的环境是:

Client:
 Version:      17.05.0-ce
 API version:  1.29
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:10:54 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.05.0-ce
 API version:  1.29 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:10:54 2017
 OS/Arch:      linux/amd64
 Experimental: false

1 个答案:

答案 0 :(得分:0)

您可以保存当前的iptables配置,然后在服务器启动时加载它:

iptables-save | sudo tee /etc/iptables.conf

将以下内容复制到/etc/rc.local

# Load iptables rules from this file
iptables-restore < /etc/iptables.conf