CentOS7 Docker防火墙的简单配置教程
CentOS7Docker防火墙的简单配置
禁用firewalld服务
systemctldisablefirewalld systemctlstopfirewalld
安装iptables防火墙服务
yuminstalliptables-services
创建iptables配置脚本
cat>>/usr/local/bin/fired.sh<<'EOF' #!/bin/bash iptables-F iptables-X iptables-Z iptables-PINPUTDROP iptables-POUTPUTACCEPT iptables-PFORWARDACCEPT iptables-AINPUT-ilo-jACCEPT iptables-AINPUT-ieth0-mstate--stateRELATED,ESTABLISHED-jACCEPT iptables-AINPUT-ieth0-picmp--icmp-type8-jACCEPT #iptables-AINPUT-ptcp--dport80-ieth0-mstate-stateNEW-mrecent-update-seconds60-hitcount50-jDROP #iptables-AOUTPUT-oeth0-mowner-uid-ownervivek-ptcp--dport80-mstate-stateNEW,ESTABLISHED-jACCEPT iptables-AINPUT-ieth0-ptcp--sport1:1023--dport1:1023--syn-jDROP iptables-AINPUT-ptcp-ieth0--dport22--sport1024:65534-jACCEPT iptables-AINPUT-ptcp--dport80--sport1024:65534-jACCEPT iptables-AINPUT-ptcp--dport2376--sport1024:65534-jACCEPT iptables-AINPUT-ptcp--dport3306--sport1024:65534-jACCEPT #OpenVPNConfiguration #iptables-APOSTROUTING-tnat-s10.8.0.0/24-oeth0-jMASQUERADE #iptables-AFORWARD-itun+-jACCEPT #iptables-AINPUT-s10.8.0.0/24-jACCEPT #iptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT #iptables-AINPUT-pTCP-ieth0--dport10173--sport1024:65534-jACCEPT #iptables-AINPUT-pUDP-ieth0--dport10173--sport1024:65534-jACCEPT EOF chmod+x/usr/local/bin/fired.sh
加入开机启动项
cat>>/etc/rc.d/rc.local<禁用相关服务自启动
#注:Docker启动时会自动加入一些 systemctldisableiptables.service systemctldisabledockerdocker在centos7下的一些坑
在centos的docker上安装mysql提示chownmod/var/lib/mysqlpermissiondenied,通过下面的方法1解决。
在centos上挂载数据卷,在容器内部访问数据卷的时候报permissiondenied出错,通过下面的方法1解决。
1.Centos7安全Selinux禁止了一些安全权限,导致mysql和mariadb在进行挂载/var/lib/mysql的时候会提示如下信息:
[root@localhostmariadb]#dockerrun-d-v~/mariadb/data/:/var/lib/mysql-v~/mariadb/config/:/etc/mysql/conf.d-eMYSQL_ROOT_PASSWORD=‘123456‘test01/mariadb 19c4aa113c610f53f9720ee806e3c918dd18d21dff75c043bdd6db60011a135d [root@localhostmariadb]#dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 19c4aa113c61test01/mariadb"docker-entrypoint.sh"4secondsagoExited(1)1secondsagodesperate_kellelogs命令查看,发现提示信息是:chown:changingownershipof‘/var/lib/mysql/....‘:Permissiondenied
于是,解决方法有这么三个:
- 在dockerrun中加入--privileged=true给容器加上特定权限
- 关闭selinux
- 在selinux添加规则,修改挂载目录de
2.有时候,在启动带有端口映射的容器时候,会出现如下提示:
1iptablesfailed:iptables--wait-tnat-ADOCKER-ptcp-d0/0--dport52080-jDNAT--to-destination192.168.20.22:52080!-idocker0:iptables:Nochain/target/matchbythatname这玩意,查来查去也没给解释,参考了下http://www.lxy520.net/2015/09/24/centos-7-docker-qi-dong-bao/,这篇文章说要修改iptables的文件,只是centos7有可能根本就没有这个文件,或者没有装iptables的服务,结果最后重启宿主机,恢复了,期间尝试使用firewall-cmd命令查询,和停止防火墙。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。