Docker支持自定义容器的主机名和DNS配置。实际上,容器中的主机名和DNS配置信息都是通过系统文件维护的

  • /etc/resolv.conf

  • /etc/hostname

  • /etc/hosts

当启动容器时,使用mount命令即可查看3个文件的挂载情况,其中/etc/resolv.conf 默认会与宿主机/etc/resolv.conf 内容保持一致。而/etc/hosts 文件默认仅记录容器自身的地址和名称,/etc/hostname 则仅记录容器的主机名。

自Docker 1.2.0开始,支持在容器中直接编辑/etc/hosts/etc/hostname/etc/resolv.conf ,但这些修改都是临时的只能在运行的容器中保留,当容器终止或重启时就会消失,也不会被docker commit提交。

因此,如果用户需要自定义容器的配置,可以在创建或启动容器时通过参数指定。

  • -h或--hostname:设定容器主机名,将会写入/etc/hostname和/etc/hosts,该设置只能在容器内看到,也不会通过docker ps显示

  • --link CONTAINER_NAME:ALIAS :记录其他容器主机名到/etc/hosts

  • --dns=IP_ADDRESS :添加DNS服务器到/etc/resolv.conf

  • --dns-search=DOMAIN :指定容器的搜索域,当设定搜索域为.example.com时,在搜索为host的主机时,DNS也会搜索host.example.com

results matching ""

    No results matching ""