docker容器/etc/hosts文件修改方法
目录
- /etc/hosts
- 为什么更改/etc/hosts后重启容器,更改内容会消失?因为是临时文件
- 我/etc/hosts文件原内容
/etc/hosts
容器的/etc/hosts文件是一个本地的域名解析文件,用于将主机名映射到IP地址。在容器内部,当需要访问其他容器或主机时,可以通过/etc/hosts文件来解析主机名,从而实现网络通信。
具体来说,当容器需要访问其他容器或主机时,会先在自己的/etc/hosts文件中查找对应的主机名和IP地址的映射关系。如果找到了,就直接使用该IP地址进行通信;如果没有找到,则会将请求发送到DNS服务器进行解析。
在容器中,通常会将主机名和IP地址的映射关系写入/etc/hosts文件中,以提高网络访问的效率和稳定性。例如,如果容器需要访问主机上的某个服务,可以将主机名和IP地址的映射关系写入/etc/hosts文件中,这样容器就可以直接使用IP地址进行访问,而无需通过DNS服务器进行解析。
总之,容器的/etc/hosts文件是一个非常重要的文件,它可以帮助容器实现网络通信,并提高网络访问的效率和稳定性。
为什么更改/etc/hosts后重启容器,更改内容会消失?因为是临时文件
容器内的/etc/hosts文件是临时的,容器重启后会被重置。如果需要在容器内永久保存修改后的/etc/hosts文件,可以将其挂载到宿主机上的一个文件中,然后在容器启动时将该文件挂载到容器内的/etc/hosts文件中。
具体操作可以参考以下步骤:
- 在宿主机上创建一个文件,例如/etc/hosts.container,用于保存容器内的/etc/hosts文件。
- 在容器启动时将该文件挂载到容器内的/etc/hosts文件中,例如:
docker run -v /etc/hosts.container:/etc/hosts ...
3.在容器内修改/etc/hosts文件时,实际上是修改了宿主机上的/etc/hosts.container文件,这样即使容器重启,修改后的/etc/hosts文件也能够被保留下来。
注意:如果在容器内修改了/etc/hosts文件,需要手动同步到宿主机上的/etc/hosts.container文件中,否则容器重启后修改将会丢失。
(但是用挂载的方式,貌似容器一些自己生成的内容没法保留,参见下面)
我/etc/hosts文件原内容
127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.11 27b6fb63ce7d
各自作用如下:
- 127.0.0.1 localhost:将localhost映射到本地回环地址,即127.0.0.1,用于本地测试和开发。
- ::1 localhost ip6-localhost ip6-loopback:将IPv6的localhost地址映射到本地回环地址,用于IPv6的本地测试和开发。
- fe00::0 ip6-localnet:将IPv6的本地网络地址映射到fe00::0,用于IPv6的本地网络通信。
- ff00::0 ip6-mcastprefix:将IPv6的多播地址映射到ff00::0,用于IPv6的多播通信。
- ff02::1 ip6-allnodes:将IPv6的所有节点地址映射到ff02::1,用于IPv6的节点通信。
- ff02::2 ip6-allrouters:将IPv6的所有路由器地址映射到ff02::2,用于IPv6的路由器通信。
- 172.17.0.11 27b6fb63ce7d:将容器ID为27b6fb63ce7d的容器的IP地址映射到172.17.0.11,用于容器之间的通信。
如果将这些映射关系删除,可能会对容器的网络通信产生影响。例如,如果删除了127.0.0.1 localhost的映射关系,容器可能无法通过localhost访问本地服务;如果删除了172.17.0.11 27b6fb63ce7d的映射关系,容器可能无法与其他容器进行通信。因此,建议不要随意修改/etc/hosts文件中的内容,以免影响容器的正常运行。
cw让添加下面这个进去,但是我从外面挂载进去后,进入容器发现上面的没有自动生成,不知道有没有问题。
172.16.80.201 xqplatformIp
所以我怀疑,之前生成内容的操作,容器是在做挂载之前完成的。
要不把echo "172.16.80.201 xqplatformIp" >> /etc/hosts加到容器启动运行脚本entrypoint.sh中?
这样做也可以,但是cw说没影响,那暂时不做了。
栏 目:其它服务器
本文地址:https://zz.feitang.co/server/29889.html
您可能感兴趣的文章
- 02-02hadoop动态增加和删除节点方法介绍
- 02-02干货 | Linux新手入门好书推荐
- 02-02linux系统下MongoDB单节点安装教程
- 02-02Linux下nginx生成日志自动切割的实现方法
- 02-02Centos 6中编译配置httpd2.4的多种方法详解
- 02-02CentOS7 下安装telnet服务的实现方法
- 02-02分布式Hibernate search详解
- 02-02Hadoop对文本文件的快速全局排序实现方法及分析
- 02-02CentOS6.3添加nginx系统服务的实例详解
- 02-02Hadoop编程基于MR程序实现倒排索引示例


阅读排行
推荐教程
- 12-07Tomcat启动报错:严重: Unable to process Jar entry [m
- 12-07解决tomcat启动报错:一个或多个listeners启动失败问题
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07Tomcat配置IPV6的实现步骤
- 12-07tomcat启动报错jar not loaded的问题
- 02-02CentOS7 下安装telnet服务的实现方法
- 12-11docker存储目录迁移示例教程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-07Tomcat部署war包并成功访问网页详细图文教程
- 01-07windows server 2008安装配置DNS服务器




