gpt4 book ai didi

dns - 使用 systemd 在 OS 上为 Docker 守护程序设置 DNS

转载 作者:IT老高 更新时间:2023-10-28 12:42:13 24 4
gpt4 key购买 nike

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 插件中使用的所有配置变量?

(顺便说一句,这是 Ubuntu 15.10 上的 Docker 1.9,虽然我不怀疑有任何错误)

最佳答案

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

您需要从 /usr/lib/systemd/system/复制 ExecStart= 部分,而不是放入 DNS=.. 行docker.service 文件到 dns.conf(或 mydocker.conf)。在 ExecStartdaemon 部分之后添加 --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= 是必需的,因为 systemctl 只有在首先清除它时才会覆盖 ExecStart。

还要注意,在 /etc/systemd/system/ 中编辑文件后需要一个 systemctl daemon-reload

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

关于dns - 使用 systemd 在 OS 上为 Docker 守护程序设置 DNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33784295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com