Docker设置DNS, 或直接配置静态域名
需要在docker内通过内网域名下载文件. 也许在家办公, 访问DNS服务器的不稳定的原因, 默认的 8.8.8.8 或 8.8.4.4 (Google免费的) 无法解析诸如公司的内部域名 sqbu-github.xxxxx.com. 而在宿主机上可以进行操作:
git clone --mirror git@sqbu-github.xxxxx.com:SL/boost /home/lajiang/Workspace/bumblebee/sl-main/_build/git-cache/git@sqbu-github.xxxxx.com/SL/boost.git
于是乎, 在宿主机通过ping域名, 或者利用nslookup可以获得域名的IP, 以及宿主机所使用的DNS服务器:
lajiang@liajiang-lnx:~/Workspace/bumblebee/sl-main$ ping sqbu-github.xxxxx.com
PING sqbu-github.xxxxx.com (64.102.211.38) 56(84) bytes of data.
64 bytes from sqbu-github.xxxxx.com (64.xxx.xxx.38): icmp_seq=1 ttl=44 time=211 ms
64 bytes from sqbu-github.xxxxx.com (64.xxx.xxx.38): icmp_seq=2 ttl=44 time=210 ms
lajiang@liajiang-lnx:~/Workspace/bumblebee/sl-main$ nslookup sqbu-github.xxxxx.com
Server: 127.0.0.53
Address: 127.0.0.53#53Non-authoritative answer:
Name: sqbu-github.xxxxx.com
Address: 64.xxx.xxx.38
那么如果让docker内识别出域名sqbu-github.xxxxx.com呢? 经查阅有若干种方式:
1. 在宿主机编辑 docker 的 daemon.json
sudo vim /etc/docker/daemon.json
加入刚刚通过nslookup查询到的127.0.0.53(然而这个还是不行, 最终64.xxx.xxx.184是询问IT得知的另一个dns服务器), 以优先取代不好用的dns IP:
{"dns":["64.xxx.xxx.184","8.8.8.8","8.8.4.4"]
}
重载配置及重新启动:
sudo systemctl daemon-reload
sudo service docker restart
再次run docker, 发现已经生效并且可以ping通. 另外注意, 不要直接在docker内修改 /etc/resolv.conf, 因为这个文件时docker自动生成的.
2. 直接在docker内编辑/etc/hosts
sudo vim /etc/hosts
当然这个属于静态查询表, 一样沿用宿主机下面ping返回的到或者 /etc/hosts的配置:
64.102.211.38 sqbu-github.xxxxx.com
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
