English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 iptables.service를 시작합니다 /usr/local/bin/fired.sh /usr/bin/systemctl docker를 시작합니다 EOF chmod +x /etc/rc.d/rc.local
서비스를 자동으로 시작하지 않도록 비활성화합니다
# 注: Docker 시작 시 자동으로 몇 가지 systemctl iptables.service를 비활성화합니다 systemctl 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: ‘/var/lib/mysql/....‘: 권한이 거부되었습니다
따라서, 해결 방법이 세 가지 있습니다:
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/목표/그 이름에 맞게 일치
이 것, 검색해도 설명이 없습니다. http:을 참조했습니다.//www.lxy520.net/2015/09/24/centaos-7-도커-기-동-보/이 문서는 iptables 파일을 수정하도록 주장하지만, CentOS 만 해당됩니다.7이 파일이 존재하지 않거나 iptables 서비스가 설치되지 않았을 수도 있으며, 결국 호스트 재시작 후 복구되었습니다. 그 동안 firewall를 사용해 시도했습니다.-cmd 명령어로防火墙查询和停止
결론
이 문서의 전체 내용이 끝났습니다. 이 문서의 내용이 여러분의 학습이나 업무에 참고 가치가 있기를 바랍니다. 의문이 있으시면 댓글을 남겨 주세요. 감사합니다. 노래 튜토리얼에 대한 지원에 감사합니다.
선언: 이 문서의 내용은 인터넷에서 가져왔으며, 저작권자는 모두 소유합니다. 이 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 이 웹사이트는 소유권을 가지지 않으며, 인공적인 편집 처리를 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 침해가 의심되는 내용이 있을 경우, 이메일을 notice#w로 보내 주세요.3codebox.com(이메일을 보내면, #을 @으로 변경해 주세요. 신고하고 관련 증거를 제공하시면, 해당 콘텐츠가 저작권 침해로 확인되면 즉시 해당 콘텐츠를 삭제할 것입니다。)