Docker如何在/etc/resolv.conf中使用已定义的名称服务器启动容器

Mei*_*yev 6 linux nameservers docker dockerfile

这是我的Dockerfile

FROM javamachine_0.1.2
MAINTAINER Meiram
RUN /report/report.sh start
ENV LANG C.UTF-8 ENV LANGUAGE C.UTF-8 ENV LC_ALL C.UTF-8
RUN echo "nameserver 192.168.1.100" > /etc/resolv.conf
COPY resolv.conf /etc/resolv.conf
EXPOSE 9090
Run Code Online (Sandbox Code Playgroud)

在创建容器指令docker run时,-dns也不会更改/etc/resolv.conf中的条目

如何永久更改/etc/resolv.conf中的条目?

Ger*_*erd 5

如果您使用 docker-compose,您可以简单地在 docker-compose.yml 中添加您的 dns-server

  my-app:
     build: my-app
     dns:
       - 10.20.20.1  # dns server 1
       - 10.21.21.2  # dns server 2
     dns_search: ibm-edv.ibmnet.int
Run Code Online (Sandbox Code Playgroud)

请参阅https://bitbucket.org/snippets/mountdiablo/9yKxG/docker-compose-reference-yaml-file-with


小智 3

如果您使用 --dns 您可能需要删除这些行:

RUN echo "nameserver 192.168.1.100" > /etc/resolv.conf
COPY resolv.conf /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

还,

也尝试交换线路。 COPY 命令将覆盖前一个命令。