The default DNS for Docker (e.g. 8.8.8.8) is blocked where I work, so I want to change the default. I've been able to do this using
$ docker daemon --dns <mydnsaddress>
but I want to do this using a systemd drop-in instead, since the official Docker docs recommend this way. I've made a /etc/systemd/system/docker.service.d/dns.conf
file, and used things like this:
[Service]
DNS=<mydnsaddress>
But I just have no idea what the variable name is supposed to be. How do I set this? More importantly, is there a page that documents all config variables that can be used in systemd drop-ins for Docker?
(btw, this is Docker 1.9 on Ubuntu 15.10, although I don't suspect any bugs)
All
.conf
files in/etc/systemd/system/docker.service.d
overrule the settings from the/usr/lib/systemd/system/docker.service
file, which is almost what you tried.Instead of putting a
DNS=..
line in, you need to copy theExecStart=
part from the/usr/lib/systemd/system/docker.service
file todns.conf
(ormydocker.conf
). Add--dns $ip
after thedaemon
part of theExecStart
. E.g.:Where the
192.168.1.1
is the ip of the dns server.Now restart docker via systemctl and docker should now restart with your own dns. (Checkable via
systemctl status docker.service | grep dns
).Note that the empty
ExecStart=
is required, as systemctl only will overrule the ExecStart if it is cleared first.Also note that a
systemctl daemon-reload
is needed after editing files in/etc/systemd/system/
.Last remark is that on some systems
docker.service
is not located in/usr/lib/systemd/system/
, but in/lib/systemd/system/
.