返回顶部
首页 > 资讯 > 后端开发 > Python >Docker修改hosts
  • 465
分享到

Docker修改hosts

Dockerhosts 2023-01-30 21:01:27 465人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

Docker修改hosts?这还不简单,打开vim直接敲就完事儿了!然而事与愿违,事情没有我们想的那么简单。在很多场景中,比如我们需要搭建一个集群,这时候容器要识别集群内的节点,就需要添加相应的host解析。这时就需要修改容器的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显得很麻烦,如何解决这一问题,目前有以下办法。

1.开启时加参数
开启容器时候添加参数–add-host Machine:ip可以实现hosts修改,在容器中可以识别machine主机。缺点是很多个节点的话命令会很长,有点不舒服(当然,你可以写一个脚本了)。

例如:

# docker run -it --name alpine-test1 --add-host=test.baidu.com:192.168.1.37 docker.io/alpine

进入容器之后,直接ping 一次test.baidu.com

/ # ping -c 1 test.baidu.com
PING testgitlab.baidu.com (192.168.1.37): 56 data bytes
64 bytes from 192.168.1.37: seq=0 ttl=64 time=0.215 ms

--- testgitlab.baidu.com ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.215/0.215/0.215 ms
/ #

注意:

特别注意--add-host参数的位置,在某些位置,启动会报错的。最好在--name后面

上面这种方法适合手动方式,如果自动部署,就不适合了


2.自定义Dockerfile

# mkdir /opt/docker/test
# cd /opt/docker/test
# vim Dockerfile

内容如下:

FROM docker.io/alpine

RUN echo "#aliyun" > /etc/apk/repositories
RUN echo "https://mirrors.aliyun.com/alpine/v3.6/main/" >> /etc/apk/repositories
RUN echo "Https://mirrors.aliyun.com/alpine/v3.6/commUnity/" >> /etc/apk/repositories
RUN apk update
#自己安装的软件,不需要可以注视掉
RUN apk add openssh-client rsync

RUN mkdir /data
COPY run.sh /data/
RUN chmod +x /data/run.sh
 
ENTRYPOINT /bin/sh -c /data/run.sh

编辑脚本

# vim run.sh

内容如下:

# 向hosts文件追加内容
#cat /data/myhosts >> /etc/hosts
echo "192.168.1.37 testgitlab.kuaidihelp.com"  >> /etc/hosts
 
# 其他命令
 
# 保留终端,防止容器自动退出
/bin/sh

build镜像

# cd ../
# docker build -t test test/

使用test镜像启动一个docker

[root@testgitlab kb-test]#  docker run -it kb-test sh
/ # cat /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.3    58068006c8b5
192.168.1.37 testgitlab.kuaidihelp.com
/ #

如上,说明hosts写入进去了。

--结束END--

本文标题: Docker修改hosts

本文链接: https://lsjlt.com/news/178960.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Docker修改hosts
    Docker修改hosts这还不简单,打开vim直接敲就完事儿了!然而事与愿违,事情没有我们想的那么简单。在很多场景中,比如我们需要搭建一个集群,这时候容器要识别集群内的节点,就需要添加相应的host解析。这时就需要修改容器的hosts文件...
    99+
    2023-01-30
    Docker hosts
  • Docker中怎么对hosts进行修改
    本篇文章为大家展示了Docker中怎么对hosts进行修改,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Docker修改hosts这还不简单,打开vim直接敲就完事儿了!然而事与愿违,事情没有我们想...
    99+
    2023-06-19
  • ubuntu如何修改hosts
    ubuntu修改hosts的方法:1、打开终端;2、输入“sudo gedit /etc/hosts”命令修改hosts配置文件;3、将网上的公开的解析记录添加到hosts文件中;4、输入“sudo /etc/init.d/networki...
    99+
    2024-04-02
  • 【mac】修改 hosts 文件
    1、在终端中,输入以下命令并按回车键打开 Hosts 文件: sudo nano /etc/hosts 2、在 Hosts 文件中,每行表示一个主机名和相应的 IP 地址之间的映射。按照以下格式添加或...
    99+
    2023-09-07
    macos vim 编辑器
  • centos7中如何修改hosts
    centos7中修改hosts的方法:1、打开centos7终端;2、在终端命令行输入“sudo gedit /etc/hosts”命令修改hosts配置文件;3、将网上的公开的解析记录添加到hosts文件中;4、最后输入“sudo /et...
    99+
    2024-04-02
  • linux中如何修改hosts
    linux中修改hosts的方法:1、打开linux终端;2、输入“sudo gedit /etc/hosts”命令修改hosts配置文件;3、将网上的公开的解析记录添加到hosts文件中;4、输入“sudo /etc/init.d/net...
    99+
    2024-04-02
  • php修改hosts的方法
    这篇文章将为大家详细讲解有关php修改hosts的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php修改hosts的方法:首先删除配置文件里域的hosts,将域配置为指定ip;然后添加一条host记...
    99+
    2023-06-08
  • linux修改hosts怎么生效
    linux修改hosts生效的方法:1、打开linux终端;2、在linux终端命令行中通过“sudo /etc/init.d/networking restart”命令使修改生效并重启网络服务。具体操作步骤:在linux系统桌面中使用快捷...
    99+
    2024-04-02
  • ubuntu修改hosts如何生效
    ubuntu修改hosts生效的方法:通过“sudo /etc/init.d/networking restart”命令使修改生效并重启网络服务。修改示例以及具体操作步骤:通过快捷键【Ctrl+Alt+T】打开终端命令行模式。输入以下命令修...
    99+
    2024-04-02
  • 修改hosts文件的方法
    这篇文章主要介绍了修改hosts文件的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。修改hosts文件的方法:首先按【windows+x】,打开【windows powe...
    99+
    2023-06-14
  • linux如何修改hosts文件
    这篇文章主要讲解了“linux如何修改hosts文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux如何修改hosts文件”吧!方法:1、利用“vi /etc/hosts”命令打开h...
    99+
    2023-06-22
  • hosts修改工具是什么
    这篇文章主要介绍了hosts修改工具是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇hosts修改工具是什么文章都会有所收获,下面我们一起来看看吧。hosts修改工具:一、EasyHosts文件管理工具Ea...
    99+
    2023-07-01
  • ubuntu如何修改hosts文件
    这篇文章主要介绍“ubuntu如何修改hosts文件”,在日常操作中,相信很多人在ubuntu如何修改hosts文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ubuntu如何修改hosts文件”的疑惑有所...
    99+
    2023-07-01
  • python脚本修改hosts文件
    记一次使用python脚本来修改hosts文件,由于公司服务器需要换ip地址,服务器里都是Linux系统,而hosts文件中有些解析的ip,手动一台一台的解析太麻烦,就写了这个脚本。本来以为感觉很简单,但是写的过程真不好写,也试过shell...
    99+
    2023-01-31
    脚本 文件 python
  • 如何修改win10 hosts文件
    这篇“如何修改win10 hosts文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何修改win10 hosts文件”文...
    99+
    2023-07-01
  • win10怎么修改hosts文件
      win10怎么修改hosts文件?Hosts文件是一个用于储存计算机网络中各节点信息的计算机文件。这个文件负责将主机名映射到相应的IP地址。那么我们要如何去修改Win10系统中的hosts文件呢?下面就跟着小编一起来看看win10修改h...
    99+
    2023-07-10
  • Win8.1系统如何修改Hosts文件?Win8.1系统修改Hosts文件的方法
      Win8.1系统如何修改Hosts文件?有些用户也许不知道,当你修改Hosts文件后,Win8.1访问某些网站的速度会变快。你可以把你经常访问的网站添加到Hosts文件,以提高访问速度。那么Win8.1...
    99+
    2022-06-04
    文件 系统 方法
  • hosts怎么修改域名解析
    在hosts文件中修改域名解析的方法首先,在计算机中打开系统磁盘;系统磁盘打开后,在磁盘中查找到查找到“hosts”文件,hosts文件位置:C:\WINDOWS\system32\drivers\etc;hosts文件查找到后,使用记事本...
    99+
    2024-04-02
  • win2008 r2 hosts文件修改方法
    win2008 r2就是64位的系统 hosts文件路径的是C:\Windows\System32\drivers\etc\hosts 方法一 第一种方法是网上流传很广的覆盖方法.就是先复制hosts文件到别的地方,修改...
    99+
    2023-06-10
    win2008 hosts 修改 文件 r2 方法
  • Mac 修改Hosts文件的方式
    每次都要查询怎么改Hosts文件,还是记录下来吧!!!! 1、修改终端命令 (1)打开终端,输入命令行: sudo vi /etc/hosts (2)输入本机密码后,会自动打开hosts文件 。 键盘输入i(插入),修改完成后,按 esc ...
    99+
    2023-09-01
    经验分享
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作