docker 容器無(wú)法使用dns解析域名異常問題排查
在宿主機(jī)上可以 ping baidu.com ,但是在容器里面無(wú)法使用dns,即無(wú)法ping baidu.com ,這種情況,可以參考 Docker容器內(nèi)無(wú)法解析域名:Temporary failure in name resolution
但是如果參考上面依舊無(wú)法解決,那么可以參考以下記錄
1 進(jìn)入容器網(wǎng)絡(luò)空間
有些鏡像沒有ping命令,這樣的容器排查問題起來(lái)會(huì)很麻煩,這時(shí)候就可以在宿主機(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í)行完命令后,如果沒有報(bào)錯(cuò)即進(jìn)入了容器的網(wǎng)絡(luò)空間了
這時(shí)候可以使用ping 命令進(jìn)行 dns測(cè)試,如 ping baidu.com
正常情況應(yīng)該可以看到這種情況:

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

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

3 修改問題
修改本機(jī)dns配置
# 停止并禁用 systemd-resolved sudo systemctl disable --now systemd-resolved # 刪除符號(hào)鏈接 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 的時(shí)候出現(xiàn)一下情況,那么這代表當(dāng)前機(jī)器你有更改過hostname,比如加入docker swarm 集群的時(shí)候改的名字
![]()
這時(shí)候就需要加一條記錄,把你當(dāng)前主機(jī)名稱hostname記錄加進(jìn)入即可
sudo vim /etc/hosts

這樣再執(zhí)行以上 修改本機(jī)dns記錄的命令就不會(huì)出現(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這時(shí)候再進(jìn)行ping的時(shí)候,可以正常了

到此這篇關(guān)于docker 容器無(wú)法使用dns解析域名異常問題排查的文章就介紹到這了,更多相關(guān)docker無(wú)法使用dns解析域名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker網(wǎng)絡(luò)配置從基礎(chǔ)到高級(jí)實(shí)踐的完全指南
Docker?網(wǎng)絡(luò)系統(tǒng)允許容器之間、容器與主機(jī)以及外部網(wǎng)絡(luò)進(jìn)行安全可控的通信,理解?Docker?網(wǎng)絡(luò)是構(gòu)建可靠容器化應(yīng)用的關(guān)鍵,下面我們就來(lái)看看Docker基礎(chǔ)網(wǎng)絡(luò)配置和高級(jí)網(wǎng)絡(luò)配置的具體方法吧2025-05-05
Docker搭建PlantUML服務(wù)生成UML圖的實(shí)踐分享
PlantUML 是一款開源的 UML 圖形生成工具,它支持生成類圖、時(shí)序圖、用例圖、活動(dòng)圖等多種類型的 UML 圖,廣泛應(yīng)用于軟件設(shè)計(jì)、文檔編寫以及團(tuán)隊(duì)溝通中,本文給大家介紹了Docker搭建PlantUML服務(wù)生成UML圖的最佳實(shí)踐,需要的朋友可以參考下2025-03-03
docker如何查看容器啟動(dòng)命令(已運(yùn)行的容器)
Docker是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,下面這篇文章主要給大家介紹了關(guān)于docker如何查看容器啟動(dòng)命令(已運(yùn)行的容器)的相關(guān)資料,需要的朋友可以參考下2023-02-02
docker容器數(shù)據(jù)卷之具名掛載和匿名掛載問題
容器數(shù)據(jù)卷就是目錄的掛載,將我們的容器的目錄掛載到宿主機(jī)上,從而實(shí)現(xiàn)打通宿主機(jī)和容器之間的文件共享功能,這篇文章主要介紹了docker容器數(shù)據(jù)卷 - 具名掛載和匿名掛載問題,需要的朋友可以參考下2021-11-11
如何Docker化Python Django應(yīng)用程序
今天小編就為大家分享一篇關(guān)于如何Docker化Python Django應(yīng)用程序的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-09-09
解決虛擬機(jī)掛起后再恢復(fù)后Docker部署的應(yīng)用無(wú)法連接問題
這篇文章主要介紹了解決虛擬機(jī)掛起后再恢復(fù)后Docker部署的應(yīng)用無(wú)法連接問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
Docker 鏡像國(guó)內(nèi)加速的方法匯總(收藏版)
本文介紹了在國(guó)內(nèi)使用Docker時(shí)遇到的加速和優(yōu)化方法,針對(duì)國(guó)內(nèi)下載速度慢和斷線問題,可以使用國(guó)內(nèi)可用的DockerRegistryMirrors或自建DockerRegistryMirror/Proxy,針對(duì)沒有公共鏡像庫(kù)賬號(hào)導(dǎo)致的限流問題,可以注冊(cè)各個(gè)鏡像庫(kù)賬號(hào)并登錄,感興趣的朋友跟隨小編一起看看吧2025-01-01
Docker中部署Mino并掛載配置文件的項(xiàng)目實(shí)踐
本文主要介紹了Docker中部署Mino并掛載配置文件的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
linux環(huán)境部署及docker安裝redis的方法
這篇文章主要介紹了linux環(huán)境部署及docker安裝redis的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08

