Docker 端口映射与 iptables

First Post:

Last Update:

查看端口

1
iptables -t nat --list-rules DOCKER

添加端口映射

1
2
3
4
5
echo $1
echo $2
iptables -t nat -A DOCKER ! -i docker0 -p tcp -m tcp --dport $2 -j DNAT --to-destination $1:$2
iptables -t nat -A POSTROUTING -s $1/32 -d $1/32 -p tcp -m tcp --dport $2 -j MASQUERADE
iptables -t filter -A DOCKER -d $1/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport $2 -j ACCEPT

使用

1
sh add_port.sh $host $port

删除端口映射

1
2
3
4
5
echo $1
echo $2
iptables -t nat -D DOCKER ! -i docker0 -p tcp -m tcp --dport $2 -j DNAT --to-destination $1:$2
iptables -t nat -D POSTROUTING -s $1/32 -d $1/32 -p tcp -m tcp --dport $2 -j MASQUERADE
iptables -t filter -D DOCKER -d $1/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport $2 -j ACCEPT

使用

1
sh del_port.sh $host $port