docker有自己的防火墙吗?
有的,开启防火墙端口:firewall-cmd --zone=public --add-port=80/tcp --permanent。但是docker的部分网络功能是通过iptables转发来完成的,转发规则是docker进程启动后动态添加的,也就意味着如果你重启iptables,将会丢失docker的转发规则。
有两种解决办法:
1、动态添加iptables规则,然后保存到防火墙软件配置文件中
动态添加iptables规则可以使规则立即生效(重启失效)
sudo iptables -I INPUT 1 -p tcp --dport 46379 -j ACCEPT
这条命令会将规则添加到input规则的第一位 ,-I参数指定插入位置。不要使用-A参数,该参数会将规则添加到input的最后一条,一般原来的最后一条都是reject规则,所以新插入的规则无法生效。
sudo service iptables save
2、重启iptable后重新启动docker
影响:重启docker会导致全部容器重启,有可能造成短时间的业务故障。
此方法不建议使用,如果已经重启防火墙,导致docker业务故障,使用下面命令重启dcoker。
systemctl restart docker
它的基本操作是什么?
1、启动服务:systemctl start firewalld.service
2、关闭服务:systemctl stop firewalld.service
3、重启服务:systemctl restart firewalld.service
4、显示服务的状态:systemctl status firewalld.service
5、开机自动启动:systemctl enable firewalld.service
6、禁用开机自动启动:systemctl disable firewalld.service
7、查看版本: firewall-cmd --version
8、查看帮助: firewall-cmd --help
9、显示状态: firewall-cmd --state
10、查看所有打开的端口: firewall-cmd --zone=public --list-ports
11、更新防火墙规则: firewall-cmd --reload
12、查看区域信息: firewall-cmd --get-active-zones
13、查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
14、拒绝所有包:firewall-cmd --panic-on
15、取消拒绝状态: firewall-cmd --panic-off
16、查看是否拒绝: firewall-cmd --query-panic
以上就是小编的分享,希望可以帮助到大家。