docker容器無法ping域名問題及解決
docker容器無法ping域名問題
現(xiàn)象
容器內(nèi)
ping 114.114.114.114 #正常 ping baidu.com #超時
原因
DNS錯誤不能進(jìn)行域名解析。
- 方法一:
容器目錄下新建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配置中加入默認(rèn)DNS(這個試了未成功,暫沒分析)。
docker容器無法訪問外網(wǎng) ping: bad address
# 進(jìn)入容器 docker exec -it 容器id sh ping www.baidu.com # 返回結(jié)果:ping: bad address 'www.baidu.com'
推測原因應(yīng)該是DNS網(wǎng)絡(luò)解析的問題,網(wǎng)上查資料得知,docker在創(chuàng)建時默認(rèn)不會使用宿主機(jī)的網(wǎng)絡(luò),是被單獨(dú)隔離在一個網(wǎng)絡(luò)環(huán)境中運(yùn)行的。
考慮到我創(chuàng)建的容器不需要單獨(dú)的網(wǎng)絡(luò)環(huán)境,所以使用--network=host,實(shí)現(xiàn)docker訪問宿主機(jī)網(wǎng)絡(luò),最終解決問題。
# 容器停止,并刪除 docker stop [容器id] docker rm [容器name] # 重新創(chuàng)建docker容器 docker run -it -d --init --name [容器name] --network=host -p [端口] [鏡像] # 進(jìn)入容器查看 docker exec -it [新的容器id] sh ping www.baidu.com # 成功!
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker部署nginx訪問宿主機(jī)服務(wù)并使用緩存的操作方法
這篇文章主要介紹了docker部署nginx訪問宿主機(jī)服務(wù)并使用緩存的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,感興趣的朋友一起看看吧2024-04-04
解決Docker啟動Elasticsearch7.x報(bào)錯的問題
這篇文章主要介紹了解決Docker啟動Elasticsearch7.x報(bào)錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Docker 拉取鏡像超時(親測 3 個有效鏡像源 + 避坑指南)
Docker 默認(rèn)鏡像源在國外,國內(nèi)訪問經(jīng)常抽風(fēng),常規(guī)操作應(yīng)該是換國內(nèi)鏡像源,本文就來介紹一下三個國內(nèi)穩(wěn)定源,具有一定的參考價值,感興趣的可以了解一下2025-08-08
Docker啟動容器權(quán)限報(bào)錯問題及解決
Docker啟動容器時權(quán)限報(bào)錯,解決方法是將/etc/selinux/config文件中的SELINUX屬性改為disabled,然后重新啟動Docker并啟動容器2026-03-03
Docker網(wǎng)絡(luò)配置與自定義IP容器通信
IP地址是Docker容器在網(wǎng)絡(luò)中的唯一標(biāo)識,每個Docker都會被分配一個 IP,用于網(wǎng)絡(luò)通信,本文主要介紹了Docker網(wǎng)絡(luò)配置與自定義IP容器通信,感興趣的可以了解一下2024-03-03

