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 <<EOF# Firewall & Docker/usr/bin/systemctl start iptables.service/usr/local/bin/fired.sh/usr/bin/systemctl start dockerEOFchmod +x /etc/rc.d/rc.local
禁用相關服務自啟動
# 注: Docker 啟動時會自動加入一些systemctl disable iptables.servicesystemctl disable docker
docker在centos/254878.html">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
于是,解決方法有這么三個:
--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命令查詢,和停止防火墻。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答
圖片精選