千家信息网

CentOS7中Docker防火墙如何配置

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,小编给大家分享一下CentOS7中Docker防火墙如何配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!CentOS7
千家信息网最后更新 2025年02月04日CentOS7中Docker防火墙如何配置

小编给大家分享一下CentOS7中Docker防火墙如何配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

CentOS7 Docker防火墙的简单配置

禁用 firewalld 服务

systemctl disable firewalldsystemctl stop firewalld

安装 iptables 防火墙服务

yum install iptables-services

创建 iptables 配置脚本

cat >> /usr/local/bin/fired.sh <<'EOF'#!/bin/bashiptables -Fiptables -Xiptables -Ziptables -P INPUT DROPiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPTiptables -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 ACCEPTiptables -A INPUT -i eth0 -p tcp --sport 1:1023 --dport 1:1023 --syn -j DROPiptables -A INPUT -p tcp -i eth0 --dport 22 --sport 1024:65534 -j ACCEPTiptables -A INPUT -p tcp --dport 80 --sport 1024:65534 -j ACCEPTiptables -A INPUT -p tcp --dport 2376 --sport 1024:65534 -j ACCEPTiptables -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 ACCEPTEOFchmod +x /usr/local/bin/fired.sh

加入开机启动项

cat >> /etc/rc.d/rc.local <

禁用相关服务自启动

# 注: Docker 启动时会自动加入一些systemctl disable iptables.servicesystemctl 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/mariadb19c4aa113c610f53f9720ee806e3c918dd18d21dff75c043bdd6db60011a135d[root@localhost mariadb]# docker ps -aCONTAINER ID  IMAGE    COMMAND     CREATED    STATUS      PORTS          NAMES19c4aa113c61  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

于是,解决方法有这么三个:

  • 在docker run中加入 --privileged=true 给容器加上特定权限

  • 关闭selinux

  • 在selinux添加规则,修改挂载目录de

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防火墙如何配置"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0