Ответ 1
Все .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
. Например:.
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon --dns 192.168.1.1 -H fd://
Где 192.168.1.1
является ip сервера dns.
Теперь перезагрузите docker через systemctl, и docker должен перезапустить его с помощью собственных dns. (Можно проверить через systemctl status docker.service | grep dns
).
Обратите внимание, что требуется пустой ExecStart=
, поскольку systemctl только отменит ExecStart, если он сначала очищен.
Также обратите внимание, что после редактирования файлов в /etc/systemd/system/
требуется systemctl daemon-reload
.
Последнее замечание состоит в том, что на некоторых системах docker.service
не находится в /usr/lib/systemd/system/
, а в /lib/systemd/system/
.