如何在/etc/resolv.conf(dockerfile)中添加新的名称服务器?

在我的dockerfile上,我使用:

FROM ubuntu:14.04

RUN echo "nameserver 10.111.122.1" >> /etc/resolv.conf

在我的测试中,我使用:
docker run --rm 746cb98d6c9b echo cat /etc/resolv.conf

我没有找零(新的名称服务器)...所以我尝试用
docker run --rm 746cb98d6c9b echo "nameserver 10.111.122.1" >> /etc/resolv.conf

我得到
zsh: permission denied: /etc/resolv.conf

如何更改此文件的权限或使用root用户或在docker文件中使用chmod?我的真正任务是为该dockerfile的构建添加和dns服务器。

我正在使用Linux Mint。

我在docker run命令上使用ping测试得到了正确的结果(使用--dns)

最佳答案

因此,可以在容器的构建过程中添加新的DNS信息的方法之一是向Docker守护进程添加一些启动选项。该过程的The documentation显示您将使用的选项是--dns。配置文件的位置取决于您的特定发行版。在我的Linux Mint机器上,文件位于/etc/default/docker中。在Linux Mint上,查找DOCKER_OPTS=行,并将适当的--dns=x.x.x.x条目添加到该行。

例如,如果要使用Google的DNS,则应将该行更改为如下所示:

DOCKER_OPTS="--dns=8.8.4.4 --dns=8.8.8.8"

此外,在缺少--dns--dns-search启动选项的情况下,Docker会改用运行它的主机的/etc/resolv.conf

关于docker - 带有新名称服务器的Docker,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36362150/

10-16 22:38