## 失效原因
默认情况下, docker启动后参数中如果加了端口映射, 就会自动将端口开放给所有网络设备访问,
并且这种情况下即使在本机的系统防火墙中加规则也无效, 因为docker会自动添加一个优先级最高的针对这个映射端口全开放规则,
这样就需要在docker启动时添加参数来禁止docker对本机防火墙的操作.
## 服务器环境
| 对象 | 版本 |
| --- | --- |
| CentOS | 7.6.1810 |
| Docker-CE | 17.12.1-ce |
## 添加对应服务和端口的允许访问规则
~~~
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source ipset=whitelist-app service name="http" accept'
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source ipset=whitelist-app service name="https" accept'
firewall-cmd --permanent --add-rich-rule='rule source ipset=whitelist-app port port=2266 protocol=tcp accept'
firewall-cmd --permanent --add-rich-rule='rule source ipset=whitelist-app port port=3888-4500 protocol=tcp accept'
~~~
> 注意添加`--permanent`否则重启防火墙后规则失效
## (重点)禁止docker去操作防火墙
~~~
# 给docker的启动服务添加"--iptables=false"参数, 禁止docker去操作防火墙
sed -i 's:^ExecStart=/usr/bin/dockerd.*:ExecStart=/usr/bin/dockerd --iptables=false:g' /lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker
~~~
> 注意:重启docker后需要重启容器镜像
- Linux常用命令
- find命令常用用法
- grep命令常用用法
- Sublime Text常用插件
- Laravel artisan 命令工具
- Centos使用Bind搭建DNS服务器
- Docker
- Docker安装
- 镜像使用
- 容器使用
- 使用Docker Hub
- Linux下编译安装PHP7.2.14
- Git常用操作
- Laravel-env使用注意事项
- Linux系统安装docker后,firewall规则无效不起作用
- CentOS7 firewall 防火墙
- Mysql
- mysql查看binlog日志
- mysql使用sql备份文件恢复数据库
- mysqldump备份数据库
- mysql用户操作
- mysql基本命令
- Explain详解
- 先排序后分组
- 查询逗号分隔的id,翻译出相对应name,同样用逗号分隔
- 解决VirtualBox安装增强工具失败问题
- curl常用用法
- strtotime() 的各种用法
- 使用kebeadm搭建k8s
- win10激活