centos 8 docker-ce 安裝 dns問題處理


https://www.techrepublic.com/article/a-better-way-to-install-docker-on-centos-8/
https://linuxconfig.org/how-to-install-docker-in-rhel-8
https://yq.aliyun.com/articles/110806

centos8目前直接安裝會提示containerd.io版本不支持的問題,此時可以通過--nobest選項安裝,不過這樣安裝,每次更新時都會有警告提示。所以最好還是先裝好高版本的containerd.io再裝docker-ce
docker的rpm官方包在https://download.docker.com/linux/centos/7/x86_64/stable/Packages/可以下載,
也可使用鏡像地址:http://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/

dnf config-manager --add-repo=http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf install http://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.2.el7.x86_64.rpm
dnf install docker-ce

由於centos 8 將iptables替換為nftables,docker存在兼容性問題,會出現dns功能無法解析的bug。你可以busybox容器校驗

docker run busybox nslookup baidu.com

參考:https://forums.centos.org/viewtopic.php?f=54&t=74270

有三種方式可以處理,任選其一即可:

1.啟用masquerade(建議)

firewall-cmd --zone=public  --add-masquerade --permanent
firewall-cmd --reload

參考:https://linuxconfig.org/how-to-install-docker-in-rhel-8 中的評論

2.讓firewalld使用iptables

#修改/etc/firewalld/firewalld.conf
#FirewallBackend=nftables
FirewallBackend=iptables

sudo systemctl restart firewalld.service

參考:https://github.com/docker/for-linux/issues/957#issuecomment-627166787

3.添加docker0網口為信任(不建議,docker-compose的dns問題未修復,會對外開放所有發布的容器端口)

firewall-cmd --permanent --zone=trusted --add-interface=docker0

參考:https://forums.centos.org/viewtopic.php?f=54&t=74270

對DNS問題的測試方法,請見:https://github.com/docker/for-linux/issues/957#issuecomment-658649036


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM