我想为/etc/resolv.conf
我的docker容器添加一个域条目.
这是我的dockerFile
FROM tomcat:8.0.20-jre7
VOLUME /tmp
#RUN sed -i "s|search local|domain com.example.com|g;" /etc/resolv.conf
RUN echo "domain com.example.com" >> /etc/resolv.conf
# Expose ports.
EXPOSE 8080
Run Code Online (Sandbox Code Playgroud)
我想这两个echo
和sed
.有sed
,我在构建过程中遇到错误.
sed: cannot rename /etc/sed6LcoES: Device or resource busy
但是使用echo
容器构建并成功运行.但是,当我进入容器时,我没有看到我的域名被添加/etc/resolv.conf
.
为什么不工作?
注意:我dns-search
在运行参数期间通过传递工作
docker run -p 8080:8080 --dns-search=com.example.com -d --name myawesome my/myawesome:latest
但我有兴趣让dockerFile工作.
这是设计的./etc/resolv.conf
docker引擎使用它来处理服务发现.文档说明如下:
Docker如何为每个容器提供主机名和DNS配置,而无需使用内部编写的主机名构建自定义映像?它的诀窍是用虚拟文件覆盖容器内的三个关键/ etc文件,它可以写出新的信息......这种安排允许Docker做一些聪明的事情,例如当主机接收到新配置时,保持resolv.conf在所有容器中保持最新状态DHCP以后.Docker如何在容器中维护这些文件的确切细节可以从一个Docker版本更改为下一个版本,因此您应该单独保留文件并使用以下Docker选项.
如果要覆盖/重新配置某些dns设置,请--dns
在容器启动期间使用参数.查看更多详情:
使用标准输出流可以通过尝试以下代码来解决,命名空间部分被更正为自己的DNS服务器IP,但这仅在容器运行时有效\xef\xbc\x9a
\n\necho "$(sed \'2,$c nameserver 223.5.5.5\\nnameserver 223.6.6.6\' /etc/resolv.conf)" > /etc/resolv.conf\n
Run Code Online (Sandbox Code Playgroud)\n\nsed命令实际上并不修改文件,而是创建一个新文件来替换原始文件。(所以用vim编辑它是可以的)。因为/etc/resolve.conf
已挂载,替换原始文件会通知设备正忙。
您可以通过命令观察正在挂载的文件df -ah
:
Filesystem Size Used Avail Use% Mounted on\noverlay 59G 7.5G 49G 14% /\n...\nmqueue 0 0 0 - /dev/mqueue\nshm 64M 0 64M 0% /dev/shm\n/dev/sda1 59G 7.5G 49G 14% /etc/resolv.conf\n....\n
Run Code Online (Sandbox Code Playgroud)\n\n正确的方法是,您可以在运行 docker 镜像时指定容器的 DNS 服务器 IP:
\n\n$ docker run --help|grep dns\n --dns list Set custom DNS servers\n --dns-option list Set DNS options\n --dns-search list Set custom DNS search domains\n\n$ docker run -it --rm --dns=223.5.5.5 --dns=223.6.6.6 centos:perf-tools /bin/bash\n[root@ea0ac0fcd834 /]# cat /etc/resolv.conf\nnameserver 223.5.5.5\nnameserver 223.6.6.6\n
Run Code Online (Sandbox Code Playgroud)\n\n另外,可以根据docker-composer.yml
配置文件修改DNS服务器IP:
dns: 8.8.8.8\ndns:\n - 8.8.8.8\n - 9.9.9.9\n
Run Code Online (Sandbox Code Playgroud)\n\n更多请参见:https ://docs.docker.com/v17.09/compose/compose-file/#dns
\n 归档时间: |
|
查看次数: |
4217 次 |
最近记录: |