docker 容器绑定hosts
http://dockone.io/question/400这个问题,有些复杂的。大致可以从以下几个点来说说这个问题。1./etc/hosts, /etc/resolv.conf和/etc/hostname,容器中的这三个文件不存在于镜像,而是存在于/var/lib/docker/containers/<container_id>,在启动容器的时候,通过mount的形式将这些文件挂..
·
问题
最近有个需求需要在docker容器里进行hosts绑定。尝试了将hosts 写在Dockerfile里,构建出镜像,但是启动容器后绑定的hosts会丢失;而且手动进入容器绑定hosts后,重启容器后hosts也会丢失。
原因
简单的说,docker容器里的/etc/hosts是动态生成的,重启容器或者由镜像run一个容器时,/etc/hosts会被重新构建,所以无论怎么修改hosts,最后都会被重置。
另外如果仔细观察可以发现,容器的hosts里有一条容器id的hosts,绑定的是容器内部的ip,而这个ip是会变的,更加说明hosts是动态的。
172.17.0.2 7049a6a6b2f1
解决方式
在run 命令 后边加入 --add-host 参数,绑定hosts
如:
docker run -d -p 8080:8080 --add-host api.test.com:10.100.33.101 test
更多推荐
已为社区贡献2条内容
所有评论(0)