合 docker创建的容器如何固定hosts文件内容
Tags: Docker/etc/hosts固定
容器中的hosts文件其实并不是存储在Docker镜像中的,/etc/hosts, /etc/resolv.conf和/etc/hostname,是存在主机上的/var/lib/docker/containers/(docker_id)目录下,容器启动时是通过mount将这些文件挂载到容器内部的。因此如果在容器中修改这些文件,修改部分不会存在于容器的top layer,而是直接写入这3个文件中。
容器重启后修改内容不存在的原因是Docker每次创建新容器时,会根据当前docker0下的所有节点的IP信息重新建立hosts文件。也就是说,你的修改会被Docker给自动覆盖掉。
方法1:添加--add-host参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | docker rm -f t1 docker run -itd --name t1 -h t1 \ --net=lhrnw --ip 172.72.6.59 \ -v /sys/fs/cgroup:/sys/fs/cgroup \ --privileged=true \ --add-host='mdw1:172.72.6.50' \ --add-host='mdw2:172.72.6.51' \ --add-host='sdw1:172.72.6.52' \ --add-host='sdw2:172.72.6.53' \ --add-host='sdw3:172.72.6.54' \ --add-host='sdw4:172.72.6.55' \ lhrbest/lhrcentos76:9.0 \ /usr/sbin/init |