使用systemd在操作系统上设置Docker守护程序的DNS

Docker的默认DNS(例如8.8.8.8)在我工作时被阻止,所以我想更改默认值.我已经能够这样做了

$docker daemon --dns <mydnsaddress>

但是我想使用systemd插件来执行此操作,因为Docker官方文档推荐这样做.我已经制作了一个/etc/systemd/system/docker.service.d/dns.conf文件,并使用了这样的东西:

[Service]
DNS=<mydnsaddress>

但我只是不知道变量名称应该是什么.我该如何设置?更重要的是,是否有一个页面记录了可以在Docker的systemd drop-ins中使用的所有配置变量?

(btw,这是Ubuntu 15.10上的Docker 1.9,虽然我不怀疑任何错误)

/etc/systemd/system/docker.service.d中的所有.conf文件都会覆盖/usr/lib/systemd/system/docker.service文件中的设置,这几乎是您尝试的.

您不需要将DNS = ..行,而是将ExecStart =部分从/usr/lib/systemd/system/docker.service文件复制到dns.conf(或mydocker.conf).在ExecStart的守护进程部分之后添加–dns $ip.例如.:

[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon --dns 192.168.1.1 -H fd://

其中192.168.1.1是dns服务器的ip.

现在通过systemctl和docker重新启动docker,现在应该用自己的dns重新启动. (可以通过systemctl status docker.service | grep dns查看).

请注意,空ExecStart =是必需的,因为只有在首先清除ExecStart时,systemctl才会超过ExecStart.

还要注意,在/ etc / systemd / system /中编辑文件后,需要一个systemctl守护程序重新加载.

最后一点是,在某些系统上,docker.service不在/usr/lib / systemd / system /中,而是位于/ lib / systemd / system /中.

相关文章
相关标签/搜索