脚本宝典收集整理的这篇文章主要介绍了CentOS7 Docker防火墙的简单配置教程,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
禁用 firewalld 服务
Systemctl disable firewalld systemctl stop firewalld
安装 iptables 防火墙服务
yum install iptables-services
创建 iptables 配置脚本
cat >> /usr/local/bin/fired.sh <<'EOF' #!/bin/bash iptables -F iptables -X iptables -Z iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p icmp --icmp-tyPE 8 -j ACCEPT #iptables -A INPUT -p tcp --dport 80 -i eth0 -m state -state NEW -m recent -update -seconds 60 -hITcount 50 -j DROP #iptables -A OUTPUT -o eth0 -m owner -uid-owner vivek -p tcp --dport 80 -m state -state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 1:1023 --dport 1:1023 --syn -j DROP iptables -A INPUT -p tcp -i eth0 --dport 22 --sport 1024:65534 -j ACCEPT iptables -A INPUT -p tcp --dport 80 --sport 1024:65534 -j ACCEPT iptables -A INPUT -p tcp --dport 2376 --sport 1024:65534 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 --sport 1024:65534 -j ACCEPT # OpenvPN configuration # iptables -A POSTROUTING -t nat -s 10.8.0.0/24 -o eth0 -j MASQUERADE # iptables -A FORWARD -i tun+ -j ACCEPT # iptables -A INPUT -s 10.8.0.0/24 -j ACCEPT # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A INPUT -p TCP -i eth0 --dport 10173 --sport 1024:65534 -j ACCEPT # iptables -A INPUT -p UDP -i eth0 --dport 10173 --sport 1024:65534 -j ACCEPT EOF chmod +x /usr/local/bin/fired.sh
加入开机启动项
cat >> /etc/rc.d/rc.local <<EOF # Firewall & Docker /usr/bin/systemctl start iptables.service /usr/local/bin/fired.sh /usr/bin/systemctl start docker EOF chmod +x /etc/rc.d/rc.local
禁用相关服务自启动
# 注: Docker 启动时会自动加入一些 systemctl disable iptables.service systemctl disable docker
docker在centos7下的一些坑
在centos的docker上安装MySQL提示chown mod /VAR/lib/mySQL permission denied,通过下面的方法1解决。
在centos上挂载数据卷,在容器内部访问数据卷的时候报permission denied出错,通过下面的方法1解决。
1.Centos7安全Selinux禁止了一些安全权限,导致mysql和mariadb在进行挂载/var/lib/mysql的时候会提示如下信息:
[root@localhost mariadb]# docker run -d -v ~/mariadb/data/:/var/lib/mysql -v ~/mariadb/config/:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=‘123456‘ test01/mariadb 19c4aa113c610f53f9720ee806e3c918dd18d21DFf75c043bdd6db60011a135d [root@localhost mariadb]# docker ps -a CONTaiNER ID IMAGE COMMAND CREATED STATUS PORTS names 19c4aa113c61 test01/mariadb "docker-entrypoint.sh" 4 seconds ago Exited (1) 1 seconds ago desperate_kelle
LOGs命令查看,发现提示信息是:chown: changing ownership of ‘/var/lib/mysql/....‘: Permission denied
于是,解决方法有这么三个:
--PRivileged=true
给容器加上特定权限2. 有时候,在启动带有端口映射的容器时候,会出现如下提示:
1 iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 52080 -j DNAT --to-destination 192.168.20.22:52080 ! -i docker0: iptables: No chain/target/match by that name
这玩意,查来查去也没给解释,参考了下http://www.lxy520.net/2015/09/24/centos-7-docker-qi-dong-bao/,这篇文章说要修改iptables的文件,只是centos7有可能根本就没有这个文件,或者没有装iptables的服务,结果最后重启宿主机,恢复了,期间尝试使用firewall-cmd命令查询,和停止防火墙。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本宝典的支持。
以上是脚本宝典为你收集整理的CentOS7 Docker防火墙的简单配置教程全部内容,希望文章能够帮你解决CentOS7 Docker防火墙的简单配置教程所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。