Docker容器修改dns


在實際的開發過程中,可能會碰到以下的使用場景:
宿主機器可以正常的解析域名,但是容器里面無法解析域名,只能解析ip。碰到這種情況基本的思路有兩個,一是從hosts文件下手,加入新的映射關系;一是從resolv.conf文件入手,也就是修改DNS服務器(如果是windows系統,則需要在網絡配置里面手動輸入DNS服務器地址)。

  • Docker修改DNS
    如果用戶是在Dockerfile里面修改/etc/resolv.conf、/etc/hosts以及/etc/hostname文件,均不會生效。每一次啟動容器上述三個文件都會被虛擬文件覆蓋。參考文章“深入淺出”來解讀Docker網絡核心原理

此時如果需要修改容器的dns有以下兩種方法:

1、 在啟動容器的同時,指定dns參數

docker run --dns 10.0.0.2 --name mybusybox busybox:latest

2、 修改宿主機器的docker配置

cat /etc/docker/daemon.json 
{
"dns" : [
"114.114.114.114",
"8.8.8.8"
]
}
sudo service docker restart


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM