? ?
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
以上就是小編的分享,希望可以幫助到大家。