配置docker run的选项

Jul*_*sar 3 dns docker

由于本地网络配置,我必须在我的docker run命令中添加--dns和--dns-search选项,如下所示:

docker run --dns XX.XX.1.1 --dns-search companydomain -t mycontainer
Run Code Online (Sandbox Code Playgroud)

是否有环境变量或配置文件,我可以添加DNS选项,以便每次我想运行容器时都不必键入它们?

我在运行在Windows机器上托管的VMware VM上的Ubuntu 16.04上使用docker.

谢谢.

BMi*_*tch 14

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

{
  "dns": ["XX.XX.1.1"],
  "dns-search": ["companydomain"]
}
Run Code Online (Sandbox Code Playgroud)

然后重新启动docker守护程序systemctl restart docker以应用更改.

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

nameserver XX.XX.1.1
search companydomain
Run Code Online (Sandbox Code Playgroud)

如果更新resolv.conf,请确保它不是由其他工具管理的,例如,如果您获得VM的dhcp地址,则dhcp客户端守护程序将覆盖该地址.

  • 非常感谢您的回答,在官方 docker 文档中找到此信息并不容易(除此之外通常非常清楚) (2认同)