CentOS7 Docker防火墻的簡(jiǎn)單配置教程
CentOS7 Docker防火墻的簡(jiǎn)單配置
禁用 firewalld 服務(wù)
systemctl disable firewalld systemctl stop firewalld
安裝 iptables 防火墻服務(wù)
yum install iptables-services
創(chuàng)建 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
加入開機(jī)啟動(dòng)項(xiàng)
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
禁用相關(guān)服務(wù)自啟動(dòng)
# 注: Docker 啟動(dòng)時(shí)會(huì)自動(dòng)加入一些 systemctl disable iptables.service systemctl disable docker
docker在centos7下的一些坑
在centos的docker上安裝mysql提示chown mod /var/lib/mysql permission denied,通過下面的方法1解決。
在centos上掛載數(shù)據(jù)卷,在容器內(nèi)部訪問數(shù)據(jù)卷的時(shí)候報(bào)permission denied出錯(cuò),通過下面的方法1解決。
1.Centos7安全Selinux禁止了一些安全權(quán)限,導(dǎo)致mysql和mariadb在進(jìn)行掛載/var/lib/mysql的時(shí)候會(huì)提示如下信息:
[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命令查看,發(fā)現(xiàn)提示信息是:chown: changing ownership of ‘/var/lib/mysql/....‘: Permission denied
于是,解決方法有這么三個(gè):
- 在docker run中加入
--privileged=true
給容器加上特定權(quán)限 - 關(guān)閉selinux
- 在selinux添加規(guī)則,修改掛載目錄de
2. 有時(shí)候,在啟動(dòng)帶有端口映射的容器時(shí)候,會(huì)出現(xiàn)如下提示:
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有可能根本就沒有這個(gè)文件,或者沒有裝iptables的服務(wù),結(jié)果最后重啟宿主機(jī),恢復(fù)了,期間嘗試使用firewall-cmd命令查詢,和停止防火墻。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
如何解決安裝docker的yum工具時(shí)報(bào)錯(cuò)問題
在安裝Docker時(shí)遇到y(tǒng)um工具錯(cuò)誤可通過更新yum源解決,先卸載舊Docker,備份原yum源,下載新的CentOS-Base.repo文件到指定目錄,安裝yum工具后,配置Docker的yum源,國內(nèi)用戶建議使用aliyun源以避免訪問異常,安裝并啟動(dòng)Docker,校驗(yàn)是否成功2024-09-09docker部署zookeeper集群方式(單主機(jī)、多主機(jī))
這篇文章主要介紹了docker部署zookeeper集群方式(單主機(jī)、多主機(jī)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04詳解如何修改 Docker 默認(rèn)網(wǎng)橋地址
這篇文章主要介紹了詳解如何修改 Docker 默認(rèn)網(wǎng)橋地址,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05docker寫一個(gè)Dockerfile文件的實(shí)現(xiàn)
Dockerfile 是一個(gè)用來構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說明,本文主要介紹了docker寫一個(gè)Dockerfile文件的實(shí)現(xiàn)2024-01-01