Docker的默认DNS(例如8.8.8.8)在我工作的地方被阻止,因此我想更改默认值。我已经能够使用
$ docker daemon --dns <mydnsaddress>
但是我想使用systemd插件代替它,因为官方Docker文档推荐这种方式。我已经制作了一个/etc/systemd/system/docker.service.d/dns.conf文件,并使用了以下内容:
/etc/systemd/system/docker.service.d/dns.conf
[Service] DNS=<mydnsaddress>
但是我只是不知道变量名应该是什么。我该如何设置?更重要的是,是否有一个页面记录了可在Docker的systemd插件中使用的所有配置变量?
(顺便说一句,这是Ubuntu 15.10上的Docker 1.9,尽管我不怀疑有任何错误)
所有.conf文件都将覆盖文件中/etc/systemd/system/docker.service.d的设置/usr/lib/systemd/system/docker.service,这几乎是您尝试过的。
.conf
/etc/systemd/system/docker.service.d
/usr/lib/systemd/system/docker.service
而不是把一个的DNS=..线,你需要将复制ExecStart=部分从/usr/lib/systemd/system/docker.service文件dns.conf(或mydocker.conf)。--dns $ip在的daemon部分之后添加ExecStart。例如:
DNS=..
ExecStart=
dns.conf
mydocker.conf
--dns $ip
daemon
ExecStart
[Service] ExecStart= ExecStart=/usr/bin/docker daemon --dns 192.168.1.1 -H fd://
其中192.168.1.1dns服务器的IP。
192.168.1.1
现在通过systemctl重新启动docker,并且docker现在应该使用您自己的dns重新启动。(可通过检查systemctl status docker.service | grep dns)。
systemctl status docker.service | grep dns
请注意,此ExecStart=字段为空是必需的,因为只有先清除后,systemctl才会否决ExecStart。
另请注意,systemctl daemon-reload在中编辑文件后需要a /etc/systemd/system/。
systemctl daemon-reload
/etc/systemd/system/
最后一点是,在某些系统上,docker.service它不在中/usr/lib/systemd/system/,而在中/lib/systemd/system/。
docker.service
/usr/lib/systemd/system/
/lib/systemd/system/