Ubuntu 16 让ufw防火墙控制docker容器中所有端口

使用docker  ps 查询docker在运行端口。

root@ai-0003:~# docker ps
CONTAINER ID        IMAGE                                                        COMMAND                  CREATED             STATUS              PORTS                                                                        NAMES
4173809cee14        wrfout_tool:v2.0_auto                                        "bash /home/start_se…"   8 months ago        Up 8 months                                                                                      wrfout_tool_auto
a42097339833        calpuff_model:v3.1_auto                                      "/home/start_server.…"   8 months ago        Up 8 months         22/tcp, 6101-6103/tcp, 10001-10005/tcp, 12345/tcp, 0.0.0.0:5003->6104/tcp    calpuff_model
d07b1bf71329        docker.in.zwxict.com/ai/ppocr_python3.6_cuda10.0:v1.8_auto   "/home/start_server.…"   16 months ago       Up 16 months        7007-7008/tcp, 12360/tcp, 0.0.0.0:5004->7002/tcp                             ppocr
f1346e935c74        ads:v1.0_auto                                                "/home/start_server.…"   16 months ago       Up 16 months        22/tcp, 6101-6104/tcp, 10001-10005/tcp, 12345/tcp, 0.0.0.0:5005->12346/tcp   ADS
58aadf0bdca2        water_env_capacity:v2.0_auto                                 "/home/start_server.…"   22 months ago       Up 17 months        22/tcp, 12346-12348/tcp, 0.0.0.0:5002->12001/tcp                             water_env_capacity
c19a34adbb2e        9f6f0236800e                                                 "/usr/bin/docker-ent…"   22 months ago       Up 17 months        0.0.0.0:5010->9000/tcp                                  

 查看/etc/iptables/rules.v4路径是否存在,若不存在利用iptables-save将当前的iptables规则保存到/etc/iptables/rules.v4文件中。如果需要配置IPv6规则,可以使用类似的方法保存到相应的文件中。


root@ai-0003:~# sudo sh -c "iptables-save > /etc/iptables/rules.v4"
root@ai-0003:~# sudo iptables-restore < /etc/iptables/rules.v4

编辑/etc/iptables/rules.v4文件中的配置,利用iptables-restore重新加载规则。

#编辑配置文件
root@ai-0003:~# sudo nano /etc/iptables/rules.v4
#重载配置文件中的规则
root@ai-0003:~# sudo iptables-restore < /etc/iptables/rules.v4

让ufw接管docker中的端口,编辑/etc/iptables/rules.v4文件。查找*nat模块中一下信息注释即可。

-A DOCKER -i docker0 -j RETURN
#-A DOCKER ! -i docker0 -p tcp -m tcp --dport 5002 -j DNAT --to-destination 172.17.0.6:12001
#-A DOCKER ! -i docker0 -p tcp -m tcp --dport 5010 -j DNAT --to-destination 172.17.0.7:9000
#-A DOCKER ! -i docker0 -p tcp -m tcp --dport 5005 -j DNAT --to-destination 172.17.0.3:12346
#-A DOCKER ! -i docker0 -p tcp -m tcp --dport 5004 -j DNAT --to-destination 172.17.0.4:7002
#-A DOCKER ! -i docker0 -p tcp -m tcp --dport 5003 -j DNAT --to-destination 172.17.0.2:6104

重载/etc/iptables/rules.v4配置文件。完成。

root@ai-0003:~# sudo iptables-restore < /etc/iptables/rules.v4

你可能感兴趣的:(ubuntu,docker,linux,防火墙控制docker端口)