如何在/etc/resolv.conf (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如何更改此文件的权限或使用根用户或在docker文件中使用chmod?我真正的任务是为构建这个dockerfile添加和dns服务器。
我用的是linux薄荷糖。
通过对docker命令进行ping测试(使用--dns),我得到了一个正确的结果。
发布于 2016-04-02 01:15:43
因此,向容器的构建过程添加新的DNS信息的方法之一是向Docker守护进程添加一些启动选项。该过程的文献资料显示,您将使用的选项是--dns。配置文件的位置取决于您的特定发行版。在我的Linux机器上,文件位于/etc/default/docker中。在Linux上,查找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。
发布于 2016-04-02 10:25:30
在创建容器期间,可以调整Docker容器的DNS配置,并且不需要在Docker映像本身中进行硬编码。
向容器传递单个DNS服务器的方法是提供--dns参数:
$ docker run --rm --dns=8.8.8.8 <image>您可以提供多个DNS服务器,还可以定义其他与DNS相关的选项,如DNS搜索名称或通用DNS选项:
$ docker run --rm --dns=8.8.8.8 --dns=8.8.4.4 --dns-search=your.search.domain --dns-opt=timeout:50 <image>如果将cat /etc/resolv.conf作为命令传递给容器,则可以很容易地验证传递的DNS配置选项是否已进入容器的DNS配置:
$ docker run --rm --dns=8.8.4.4 --dns=8.8.8.8 --dns-search=your.domain.name --dns-opt=timeout:50 alpine cat /etc/resolv.conf
search your.domain.name
nameserver 8.8.4.4
nameserver 8.8.8.8
options timeout:50还请参阅docker run配置,可在https://docs.docker.com/engine/reference/commandline/run/上找到
https://stackoverflow.com/questions/36362150
复制相似问题