/etc/hosts文件及docker run的--add-host选项详解

1./etc/hosts文件

/etc/hosts文件早于DNS出现,用于解析主机名。

Windows系统中,对应存在C:WindowsSystem32driversetchosts文件

/etc/hosts文件中的一行(空格或Tab间隔)组成如下:

IP full_host_name alias_host_name #comment


2. Docker容器中的/etc/hosts文件与--add-host
当在被启动的容器中,要访问其他服务器时,需要提前设置/etc/hosts文件。
可以在容器启动后,修改/etc/hosts文件。但是,推荐在启动容器的同时对/etc/hosts文件进行必要的设置。

使用docker run的--add-host命令选项,将要访问的其他服务器的host和ip加入到/etc/hosts文件。
--add-host命令选项表示,在启动容器时,向/etc/hosts文件添加一个host:ip的映射。示例如下:

docker run -it --add-host gerrit.ericsson.se:147.214.18.82 ubuntu cat /etc/hosts
docker run -it --add-host=gerrit:147.214.18.82 ubuntu cat /etc/hosts

参考链接:

http://www.faqs.org/docs/securing/chap9sec95.html

https://docs.docker.com/engine/reference/run/
https://docs.docker.com/engine/reference/commandline/run/