配置docker运行的选项

配置docker运行的选项,docker,dns,Docker,Dns,由于本地网络配置,我必须向docker运行命令添加--dns和--dns搜索选项,如下所示: docker run --dns XX.XX.1.1 --dns-search companydomain -t mycontainer 是否有一个环境变量或配置文件,我可以在其中添加DNS选项,这样我就不必在每次运行容器时都键入它们 我正在使用Ubuntu16.04上的docker,它运行在Windows机器上托管的VMware VM上 谢谢。您可以将这些选项添加到docker守护进程,作为其运行的

由于本地网络配置,我必须向docker运行命令添加--dns和--dns搜索选项,如下所示:

docker run --dns XX.XX.1.1 --dns-search companydomain -t mycontainer
是否有一个环境变量或配置文件,我可以在其中添加DNS选项,这样我就不必在每次运行容器时都键入它们

我正在使用Ubuntu16.04上的docker,它运行在Windows机器上托管的VMware VM上


谢谢。

您可以将这些选项添加到docker守护进程,作为其运行的所有容器的默认选项。在
dockerd
命令行上,选项相同,
--dns XX.XX.1.1--dns search companydomain
。为了避免更改启动脚本以添加该选项,可以更轻松地设置包含以下内容的/etc/docker/daemon.json文件:

{
  "dns": ["XX.XX.1.1"],
  "dns-search": ["companydomain"]
}
然后使用
systemctl restart docker
重新启动docker守护程序以应用更改

您可能会发现,最好更新VM中的/etc/resolv.conf,以便将此更改应用于VM本身,而不是docker容器。这看起来像:

nameserver XX.XX.1.1
search companydomain

如果更新resolv.conf,请确保它不是由其他工具管理的,例如,如果您正在为您的VM获取dhcp地址,这将被dhcp客户端守护程序覆盖。

非常感谢您的回答,在正式docker文档中很难找到此信息(除此之外,通常非常清楚)它与Hyper-V一起开箱即用。刚买了一台新机器并开始使用WSL2,出于某种原因,现在我需要指定DNS。谢谢你的修复!当然,在发布之后,我查看了我的WSL网络适配器设置。对于IPv4,已将其设置为使用手动DNS设置,但未列出任何设置。我从这个答案中恢复了Docker守护程序设置,重新启动了Docker,并在适配器设置中添加了一个手动DNS条目。它还在工作。