docker 容器無法使用dns解析域名異常問題排查
在宿主機(jī)上可以 ping baidu.com ,但是在容器里面無法使用dns,即無法ping baidu.com ,這種情況,可以參考 Docker容器內(nèi)無法解析域名:Temporary failure in name resolution
但是如果參考上面依舊無法解決,那么可以參考以下記錄
1 進(jìn)入容器網(wǎng)絡(luò)空間
有些鏡像沒有ping命令,這樣的容器排查問題起來會很麻煩,這時候就可以在宿主機(jī)上,通過命令進(jìn)入指定容器的網(wǎng)絡(luò)空間里面,這樣可以使用宿主機(jī)里面的ping命令,方便我們調(diào)試
nsenter -n -t `docker inspect -f '{{.State.Pid}}' 容器id`
命令解釋:docker inspect -f ‘{{.State.Pid}}’ 容器id 獲取容器的pid, nsenter -n -t 命令用于進(jìn)入指定進(jìn)程的網(wǎng)絡(luò)命名空間
執(zhí)行完命令后,如果沒有報錯即進(jìn)入了容器的網(wǎng)絡(luò)空間了
這時候可以使用ping 命令進(jìn)行 dns測試,如 ping baidu.com
正常情況應(yīng)該可以看到這種情況:

但是,能看到文章這里的都是不正常的,應(yīng)該是下面這種情況才對

2 問題排查
ping不通,使用 nslookup baidu.com 進(jìn)行排查的時候,發(fā)現(xiàn)請求了127.0.0.53這個地址,但是我們?nèi)萜骼锩娓緵]有這個地址,正常來說應(yīng)該是請求本地,也就是127.0.0.11才對,這就發(fā)現(xiàn)問題了

3 修改問題
修改本機(jī)dns配置
# 停止并禁用 systemd-resolved sudo systemctl disable --now systemd-resolved # 刪除符號鏈接 sudo rm /etc/resolv.conf # 復(fù)制以下配置到 resolv.conf中 vi /etc/resolv.conf nameserver 127.0.0.11 nameserver 8.8.8.8 nameserver 8.8.4.4 options ndots:0 # 重啟 Docker sudo systemctl restart docker # 退出當(dāng)前容器網(wǎng)絡(luò)空間 exit
如果執(zhí)行第一步 sudo systemctl disable --now systemd-resolved 的時候出現(xiàn)一下情況,那么這代表當(dāng)前機(jī)器你有更改過hostname,比如加入docker swarm 集群的時候改的名字
![]()
這時候就需要加一條記錄,把你當(dāng)前主機(jī)名稱hostname記錄加進(jìn)入即可
sudo vim /etc/hosts

這樣再執(zhí)行以上 修改本機(jī)dns記錄的命令就不會出現(xiàn)sudo: unable to resolve host nodealiyun: Temporary failure in name resolution 問題了
執(zhí)行完異常 修改本機(jī)dns記錄的命令后, 再重新進(jìn)入一下容器的網(wǎng)絡(luò)空間:
nsenter -n -t `docker inspect -f '{{.State.Pid}}' 容器id這時候再進(jìn)行ping的時候,可以正常了

到此這篇關(guān)于docker 容器無法使用dns解析域名異常問題排查的文章就介紹到這了,更多相關(guān)docker無法使用dns解析域名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker網(wǎng)絡(luò)配置從基礎(chǔ)到高級實踐的完全指南
Docker?網(wǎng)絡(luò)系統(tǒng)允許容器之間、容器與主機(jī)以及外部網(wǎng)絡(luò)進(jìn)行安全可控的通信,理解?Docker?網(wǎng)絡(luò)是構(gòu)建可靠容器化應(yīng)用的關(guān)鍵,下面我們就來看看Docker基礎(chǔ)網(wǎng)絡(luò)配置和高級網(wǎng)絡(luò)配置的具體方法吧2025-05-05
Docker搭建PlantUML服務(wù)生成UML圖的實踐分享
PlantUML 是一款開源的 UML 圖形生成工具,它支持生成類圖、時序圖、用例圖、活動圖等多種類型的 UML 圖,廣泛應(yīng)用于軟件設(shè)計、文檔編寫以及團(tuán)隊溝通中,本文給大家介紹了Docker搭建PlantUML服務(wù)生成UML圖的最佳實踐,需要的朋友可以參考下2025-03-03
docker容器數(shù)據(jù)卷之具名掛載和匿名掛載問題
容器數(shù)據(jù)卷就是目錄的掛載,將我們的容器的目錄掛載到宿主機(jī)上,從而實現(xiàn)打通宿主機(jī)和容器之間的文件共享功能,這篇文章主要介紹了docker容器數(shù)據(jù)卷 - 具名掛載和匿名掛載問題,需要的朋友可以參考下2021-11-11
如何Docker化Python Django應(yīng)用程序
今天小編就為大家分享一篇關(guān)于如何Docker化Python Django應(yīng)用程序的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-09-09
解決虛擬機(jī)掛起后再恢復(fù)后Docker部署的應(yīng)用無法連接問題
這篇文章主要介紹了解決虛擬機(jī)掛起后再恢復(fù)后Docker部署的應(yīng)用無法連接問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04
linux環(huán)境部署及docker安裝redis的方法
這篇文章主要介紹了linux環(huán)境部署及docker安裝redis的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08

