Docker容器的DNS和主机名

同一个Docker镜像能够启动不少个容器,它们的主机名并不同,可知主机名并非被写入镜像中.docker

实际上容器中/etc目录下有3个文件是容器启动后被虚拟文件覆盖掉的,分别是bash

/etc/hostnamedns

/etc/hostsit

/etc/resolv.conf容器

经过在容器中运行mount命令能够查看配置

这种能解决主机名的问题,同时也能让DNS及时更新.因为这些文件的维护方法随着docker版本演进而不断变化,所以尽可能不修改这些文件,而是经过docker提供的参数进行相关设置方法

-h HOSTNAME 或者 --hostname=HOSTNAMEhosts

设置容器的主机名,此名称会写在/etc/hostname和/etc/hosts文件中,也会在容器的bash提示符中看到.可是在外部,容器的主机名是没法查看的,不会出如今其余容器的hosts文件中,使用docker ps命令也查看不到.此参数是docker run命令的参数,而非docker daemon的启动参数文件

--dns=IP_ADDRESSco

为容器配置DNS,写在/etc/resolv.conf中,该参数能够在docker daemon启动的时候设置,也能够在docker run 时设置

[注意]

以上3个文件的修改不会被docker commit保存,也就是不会保存在镜像中,重启容器也会致使修改失效

相关文章
相关标签/搜索