docker容器無法ping域名問題及解決
docker容器無法ping域名問題
現(xiàn)象
容器內
ping 114.114.114.114 #正常 ping baidu.com #超時
原因
DNS錯誤不能進行域名解析。
- 方法一:
容器目錄下新建resolv.conf文件。
vi ./resolv.conf
寫入:
search donot nameserver 8.8.8.8 nameserver 114.114.114.114 nameserver 127.0.0.11 options ndots:0
在docker-compose.yml中加入文件映射。
volumes: - ./resolv.conf:/etc/resolv.conf
- 方法二:
在docker配置中加入默認DNS(這個試了未成功,暫沒分析)。
docker容器無法訪問外網(wǎng) ping: bad address
# 進入容器 docker exec -it 容器id sh ping www.baidu.com # 返回結果:ping: bad address 'www.baidu.com'
推測原因應該是DNS網(wǎng)絡解析的問題,網(wǎng)上查資料得知,docker在創(chuàng)建時默認不會使用宿主機的網(wǎng)絡,是被單獨隔離在一個網(wǎng)絡環(huán)境中運行的。
考慮到我創(chuàng)建的容器不需要單獨的網(wǎng)絡環(huán)境,所以使用--network=host,實現(xiàn)docker訪問宿主機網(wǎng)絡,最終解決問題。
# 容器停止,并刪除 docker stop [容器id] docker rm [容器name] # 重新創(chuàng)建docker容器 docker run -it -d --init --name [容器name] --network=host -p [端口] [鏡像] # 進入容器查看 docker exec -it [新的容器id] sh ping www.baidu.com # 成功!
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
docker部署nginx訪問宿主機服務并使用緩存的操作方法
這篇文章主要介紹了docker部署nginx訪問宿主機服務并使用緩存的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,感興趣的朋友一起看看吧2024-04-04
解決Docker啟動Elasticsearch7.x報錯的問題
這篇文章主要介紹了解決Docker啟動Elasticsearch7.x報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Docker 拉取鏡像超時(親測 3 個有效鏡像源 + 避坑指南)
Docker 默認鏡像源在國外,國內訪問經(jīng)常抽風,常規(guī)操作應該是換國內鏡像源,本文就來介紹一下三個國內穩(wěn)定源,具有一定的參考價值,感興趣的可以了解一下2025-08-08

