关于docker和firewall端口冲突问题

前言

docker和firewall底层都会操作iptable

但是

docker操作的iptable不会在firewall上留记录

firewall每次重启也会重置iptable端口规则

这就导致了

1.后启动的docker服务,会 ”打洞“,firewall没有允许的端口也会开放出去

2.后启动firewall服务,会清空iptable规则,重置规则影响docker的容器启动

解决方法

修改docker配置,不操作iptable


# 修改配置
vim /etc/docker/daemon.json

{
"iptables":false
}
systemctl restart docker

 

# 添加所需端口
#mysql
firewall-cmd --add-port=3306/tcp --permanent
#nacos
firewall-cmd --zone=public --add-port=8848/tcp --permanent
#xxl-job
firewall-cmd --zone=public --add-port=7009/tcp --permanent
#web
firewall-cmd --zone=public --add-port=8000/tcp --permanent
#gateway
firewall-cmd --add-port=8099/tcp --permanent
#redis
firewall-cmd --add-port=6379/tcp --permanent
#swagger
firewall-cmd --add-port=18000/tcp --permanent

firewall-cmd --list-ports

附录(firewall命令操作)

1. 添加(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent
 
2. 重新载入(修改规则后使其生效)
firewall-cmd --reload

3. 查看
firewall-cmd --zone= public --query-port=80/tcp
 
4. 删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent

上一篇:centos 关于防火墙的命令,开启端口,查看状态,开启,关闭


下一篇:K8s安装