Docker怎么修改hosts
Docker修改hosts?这还不简单,打开vim直接敲就完事儿了!然而事与愿违,事情没有我们想的那么简单。在很多场景中,比如我们需要搭建一个集群,这时候容器要识别集群内的节点,就需要添加相应的host解析。这时就需要修改容器的hosts文件,下面我们将会看到在Docker中自动化实现修改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给自动覆盖掉。
解决办法
修改hosts一眼看上去是一件很容易的事,根据上面的分析其实不是那么简单的,如果一个分布式系统在数十个节点上,每次重新启动都要去修改hosts显得很麻烦,如何解决这一问题,目前有以下办法。
开启时加参数
开启容器时候添加参数—add-host machine:ip可以实现hosts修改,在容器中可以识别machine主机。缺点是很多个节点的话命令会很长,有点不舒服(当然,你可以写一个脚本了)。
进入容器修改
进入容器后可以用各种编辑器编辑修改hosts文件,这样是最简单粗暴的方式,缺点就是每次启动容器都要修改一次。
dnsmasq
在每个容器中开启dnsmasq开负责局域网内的容器节点主机名解析,但是这种方式在跨物理机的时候,好像不是很方便(具体情况还没有实践过,挖坑日后再填)。可以参考一下kiwenlau的工作
修改容器hosts查找目录
我们可以想办法让容器开启时候,不去找/etc/hosts文件,而是去找我们自己定义的hosts文件,下面是一个Dockerfile实例
|
|
这样修改后,容器每次启动时就不去找/etc/hosts了,而是我们自己定义的/tmp/hosts,可以随心所欲在其中修改了
小结
以上问题可以用于跨主机部署分布式Docker集群,结合之前的跨物理机Docker网络互联,便可以实现快速高效部署分布式集群
原文链接:
https://wongxingjun.github.io
-更多文章-
Spring Cloud GateWay初体验
Kubernetes基础与架构
对业务系统的监控 No.118
Kubernetes对象模型
拜托!面试请不要再问我Spring Cloud底层原理
【性能优化之道】每秒上万并发下的Spring Cloud参数优化实战
Docker 核心技术与实现原理
学习别跟我谈兴趣 No.88
条件注解 @ConditionalOnBean 的正确使用姿势
分布式事务的实现原理
条件注解 @ConditionalOnBean 的正确使用姿势
图解:什么是Raft算法?
-关注我-
Docker怎么修改hosts相关推荐
- Docker容器修改hosts文件重启不变
Docker容器修改hosts文件重启不变 1./etc/hosts, /etc/resolv.conf和/etc/hostname容器中的这三个文件不存在于镜像,而是存在于于/var/lib/doc ...
- docker容器添加自定义hosts
方案一 启动时增加hosts,参考自docker docs docker run -d --name test1 \--add-host test1.a:1.2.3.4 \local/test 方案二 ...
- 【docker设置host】docker镜像设置hosts
docker中的host hosts文件其实并不是存储在Docker镜像中的,/etc/hosts, /etc/resolv.conf和/etc/hostname,是存在主机上的/var/lib/do ...
- linux hosts文件如何修改_如何修改hosts文件?让你简单方便快捷管理
如何修改hosts文件?几种修改方法让你简单方便快捷,hosts 是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库&q ...
- 修改Hosts为何不生效,是DNS缓存?
Update: 如果浏览器使用了代理工具,修改 Hosts 也不会生效.这里是因为,浏览器会优先考虑代理工具(如添加 pac 文件.SwitchySharp等)的代理,建议调试的时候先关闭这些代理. ...
- 如何修改hosts文件?
step1: 在C:\Windows\System32\drivers\etc目录下复制一份hosts文件到桌面 step2: 然后在桌面修改你的hosts,保存下来可能是文本格式 step3: 将. ...
- 破解phpstorm2017.3.1版本并解决win10下修改hosts问题
新入手一台新电脑,很多软件都要重新安装.终于舍弃了phpstorm2016,换到了2017版.这篇文章主要是破解phpstorm2017.3.1. 一.基本流程 1.下载phpstorm2017.3. ...
- 修改hosts文件使apache绑定域名指向本机
这篇文章主要介绍了修改hosts文件,访问本机apache绑定的域名,大家参考使用吧 apache下绑定域名 方法如下: 1.找到apache安装目录下的httpd.conf并打开,在最后加上: 复制 ...
- hosts文件_电脑修改hosts文件屏蔽网站方法
说起hosts文件我想有很多电脑用户都不会感到陌生,因为利用它我们可以屏蔽一些网站,但是有很多电脑用户都不知道电脑如何修改hosts文件屏蔽网站,那么电脑如何修改hosts文件屏蔽网站呢?下面为大家带 ...
最新文章
- php pdo blob,PHP / PDO / MySQL:插入MEDIUMBLOB存储坏数据
- 带有匹配滤波器的雷达信号调制和脉冲压缩技术的Matlab程序
- 链表的有序集合_JAVA
- liferay 如何在页面实现添加多个portlet
- 0 RabbitMQ概念
- 网站总结 和 相关控件 总结
- C语言实现可变参数列表的system接口:宏__VA_ARGS__
- 帝国cms文章内容tags关键词设置调用方法以及tags静态化
- 双刃剃须刀行业调研报告 - 市场现状分析与发展前景预测
- 语音 识别_语音识别_qq语音识别 - 云+社区 - 腾讯云
- 《Java并发编程实战》 第二章:线程安全性
- 【转】恢复默认vs2005
- Office 2010 Excel 多窗口同时单独打开多个文件设置教程
- startx 命令_通过startx从命令行启动KDE
- html 名人名言源代码,基于JQuery及AJAX实现名人名言随机生成器_咋地 _前端开发者...
- 校园IPTV数字电视教学直播系统方案-淮安生态文旅区实验小学
- python作业_python小作业
- Installation failed with message Failed to finalize session : INSTALL_FAILED_INVALID_APK:
- android 仿qq 通讯录,Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展[图文+源码]...
- excel表格多行空白,让空白行临近上方的数据自动填充到空白行