Docker容器內部能ping通ip,ping不通域名(Name or service not known)解決方法

丶聆風發表於2020-09-23

原因:dns配置問題

可先進入容器內部檢視容器目前的dns是多少,命令如下: 

# 進入容器
docker exec -it <容器名> bash

# 檢視dns
cat /etc/resolv.conf

查詢結果如下,之前我配置為宿主機的dns,然後貌似是因為橋接的原因,這個dns不是宿主機的(感覺是這樣,狗頭保命),所以能ping通ip但不能ping通域名,導致外掛一直下不下(汗)

解決方法:更換dns為114.114.114.114和8.8.8.8

# 開啟宿主機這個檔案(注意是宿主機),沒有就建立一個
vim  /etc/docker/daemon.json

# 新增下面的內容
{
  "dns" : [
    "114.114.114.114",
    "8.8.8.8"
  ]
}

# 重啟docker
systemctl restart docker

這樣之後建立的容器就可以ping通域名了,之前建立的可以手動修改一下容器內/etc/resolv.conf中的內容

然後重啟容器就可以了

# 重啟容器
docker restart <容器名>

現在就可以ping通了 

首發技術類文章,記錄一下,希望能幫到遇到類似情況的小夥伴

相關文章