精华内容
下载资源
问答
  • 我有一个叫m2的容器,现在想要修改它的 hostname 1、查看容器配置文件在宿主机上的位置,这里看到是 /var/lib/docker/containers/67e012c02434168aff3762ab4edf7550f0bfe1db57b396ce78660f140dd3056e 2、关闭容器...

    世上是有后悔药的,只要肯琢磨!再也不用重新创建容器了!

    我有一个叫m2的容器,现在想要修改它的 hostname
    在这里插入图片描述

    1、查看容器配置文件在宿主机上的位置,这里看到是
    /var/lib/docker/containers/67e012c02434168aff3762ab4edf7550f0bfe1db57b396ce78660f140dd3056e
    在这里插入图片描述
    2、关闭容器、关闭 docker 服务
    前提条件,非常重要!!!前提条件,非常重要!!!前提条件,非常重要!!!
    在这里插入图片描述

    3、进入该容器所在配置文件所在宿主机文件夹,搜索原 hostname,可以看到我们需要修改3个地方,文件分别是 config.v2.json、hostname、hosts
    在这里插入图片描述
    4、修改前做好备份
    在这里插入图片描述
    5、修改这3个地方
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    6、启动 docker 服务,启动容器,查看 hostname
    在这里插入图片描述
    hostname 修改成功!惊不惊喜!!!

    展开全文
  • docker 修改容器的主机名

    千次阅读 2019-12-27 16:37:00
    需求 使用docker在部署springcloud时,配置springcloud config组件,Dockerfile内容如下: FROM java:8-alpine ADD config-1.0-SNAPSHOT.jar app.jar ...在build镜像之后,运行容器: docker ru...

    需求

    使用docker在部署springcloud时,配置springcloud config组件,Dockerfile内容如下:

    FROM java:8-alpine
    ADD config-1.0-SNAPSHOT.jar app.jar
    EXPOSE 8091
    ENTRYPOINT ["java", "-jar", "/app.jar"]
    

    在build镜像之后,运行容器:
    docker run -d --name config -p 8091:8091 neimeng/config
    可以通过浏览器访问,并获取相应的配置文件:
    在这里插入图片描述

    出现的问题

    在使用其他微服务时,需要获取docker中的config微服务,但是控制台出现:

    2019-12-27 16:24:22.685  INFO 11452 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://对应容器的id:8091/
    

    在Eureka页面中也出现的是容器id,而不是对应的主机名。
    因此获取不到config服务的地址,需要修改config的主机名。

    解决问题

    在使用docker部署时,添加--hostname swarm-manager,其他服务在使用这个服务时,控制台输出:

    2019-12-27 16:24:22.685  INFO 11452 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://swarm-manager:8091/
    

    Eureka页面中:
    在这里插入图片描述
    这样就可以正常访问了。

    展开全文
  • 自定义Docker容器hostname

    千次阅读 2019-09-23 19:35:49
    自定义Docker容器hostname 作者: John Deng 原创内容,欢迎传播,请注明出处:http://www.cnblogs.com/johnd/p/set-docker-hostname.html 因为要部署 dubbo 服务到 docker 集群,在部署时遇到一个问题...

    自定义Docker容器的 hostname

     

    作者: John Deng

    原创内容,欢迎传播,请注明出处:http://www.cnblogs.com/johnd/p/set-docker-hostname.html

    因为要部署 dubbo 服务到 docker 集群,在部署时遇到一个问题,就是dubbo会去获取 /etc/hosts 下面的 hostname 对应的IP地址作为 zookeeper 注册中心注册的 IP 地址,由于 docker 容器的 IP 是 172.17.0.2, 那注册到 zookeeper 的 IP 也就是 172.17.0.2 了。

    那问题就来了,172.17.0.2 是 docker 容器的 IP, 容器外面是无法访问的,我的解决方案很简单,就是更改容器的 hostname 及其映射的 IP 来使得 dubbo 可以注册宿主的 IP 地址。

    我是使用 docker-compose 来启动的, 在 docker-compose.yml 中添加 environment 和 extra_hosts 两个参数即可解决:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    dubbo-service-provider:
       image: johnd/dubbo-service-provider:latest
       ports:
         - 9090:9090
         - 20880:20880
     
       environment:
         HOSTNAME: dubbo-service-provider
     
       extra_hosts:
          dubbo-service-provider: 192.168.0.100

    然后运行 docker-compose up 命令,可以看到 dubbo 已经注册了正确的 IP 地址:

     [DUBBO] Register: dubbo://192.168.0.100:20880/com.johnd.dubbo.service.api.SayHelloToJohn

    如果你是用 docker run  来运行 docker 容器,也可以添加相应的命令行参数。

    ------------------------------------------------------------------------------------------------------------

    更新:

    其实可以有更简单的处理办法,就是直接使用主机网络,在docker-compose的配置文件添加 net: host 配置。

    复制代码
    dubbo-service-provider:
      image: johnd/dubbo-service-provider:latest
    net: host ports: - 9090:9090 - 20880:20880
    复制代码

     

     

    如果你对本文有任何疑问,请留言,或者写邮件给我: john.deng@outlook.com

    转载于:https://www.cnblogs.com/xiaojikuaipao/p/6080257.html

    展开全文
  • 文章目录前言:方法1: 使用 commit 结合 docker run方法2:修改容器的配置文件(不推荐):方法3、使用 iptables 规则 :                 看这里:     &...


           


           

    看这里:

            戳此链接 通往 关于 Docker 所有的学习文章


     

    前言:

            我们知道,在我们 run a Container 的时候,可以使用 -P(随机端口映射) 或 -p(指定端口映射);那么这是 run 容器的时候做的,那么我们如果给一个运行中的容器做端口映射呢?

            首先排除 docker run ,因为docker run 每执行一次就会创建一个 新的容器,跟我们之前旧的容器没有任何关系!还有 docker update 也只是更新容器中 mem、cpu 限制的配置。 并没有针对端口做更新!

            当前,并没有直接使用 docker command 可以实现针对:运行容器中 端口映射的更改!但是不代表无法实现!
     

    看一下 docker run 时 -P 和 -p 的用法:

    docker run -P :
    
    root@zhengzelin:~#  docker run -itd -P nginx:latest 
    root@zhengzelin:~#  docker ps
    CONTAINER ID      IMAGE             COMMAND                  CREATED             STATUS              PORTS                   NAMES
    a436a2d7f6a3    nginx:latest    "nginx -g 'daemon of…"   12 minutes ago      Up 12 minutes       0.0.0.0:32768->80/tcp   optimistic_thompson
    
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    
    docker run -p :
    
    -p  : 指定端口映射(有以下四种格式:)
            
                   ip:hostport:ContainerPort
                           
                   ip::ContainerPort
                           
                   hostPort:ContainerPort
                    
                   ContainerPort     (最常用了吧)
    
    
    root@zhengzelin:~# docker run -itd -p 8080 nginx:latest 
    0f39e1c98b408eb13d2b15b92116306906fc9786067cde08cebfc348f9d6949e
    
    root@zhengzelin:~# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                             NAMES
    0f39e1c98b40     nginx:latest      "nginx -g 'daemon of…"   6 seconds ago       Up 5 seconds        80/tcp, 0.0.0.0:32771->8080/tcp   determined_bassi
    a436a2d7f6a3     nginx:latest      "nginx -g 'daemon of…"   58 minutes ago      Up 3 minutes        0.0.0.0:32769->80/tcp             optimistic_thompson
    

           


           

    方法1: 使用 commit 结合 docker run

           
            我们都知道 docker commit 是将 docker Container 打包成一个镜像!那么我们就可以使用 docker commit 将该容器打包,然后再使用 docker run 基于打包后的 new image 构建一个 new container !

    关于 docker commit 命令详解 ,及 docker container 其他 commands 介绍

    "1、打包容器成为镜像!"
    
    docker  commit  -a "指定作者名"  -m "指定注释消息"  容器ID(Name 也可)  imagename:tag
    
    # 上面 -a 和 -m 选项为 可选选项! 不是必须加,不过 推荐加! 你可以使用 docker inspect imagename 来查看镜像信息!
    
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    
    "2、查看生成的镜像:"
    
    docekr images  , 或 docker inspect 镜像名
    
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    
    "3、docker run 新的容器"
    
    随机端口映射: docker run -itd -P 生成的镜像名:tag
                 docker ps
    
    指定端口映射(文章开头有格式):
    eg:        docker run -itd  -p 指定的端口 生成的镜像名:tag
    
    root@zhengzelin:~# docker run -itd -p 8080 nginx:latest 
    0f39e1c98b408eb13d2b15b92116306906fc9786067cde08cebfc348f9d6949e
    
    root@zhengzelin:~# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                             NAMES
    0f39e1c98b40     nginx:latest      "nginx -g 'daemon of…"   6 seconds ago       Up 5 seconds        80/tcp, 0.0.0.0:32771->8080/tcp   determined_bassi
    
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    
    如果因为新容器IP的变更,导致其他的变更,你可以查看旧容器的ip,然后将旧容器删除,
    更改新容器的IP为旧容器的IP,然后重启docker 服务,重启容器!(不推荐,只能在某些时间段更改)
    
    关于方法,下面有!往下滑!
    

           


           

    方法2:修改该容器的配置文件(不推荐):

           
    1、我们都知道 docker 容器的默认存储路径为: /var/lib/docker/containers/

    2、使用 docker ps 查看容器的 ID!(不是默认路径使用:docker inspect | grep 容器ID 即可!)

    3、便可得知,需要更改的容器的配置文件的路径;

    4、开始修改

    5、修改完成

    6、重启docker服务,重启之前开启的所有容器

    注意:不推荐使用,只是这也是一种方法! 生产环境中 谁敢随随便便重启 某个服务? 还有导致很多 docker container stop,这不是没事找死呢吗?

    ★ ★ ★ 强烈不推荐!!!只是知道还有这种方法可以实现!

    1、获得 容器id:
    root@zhengzelin:~# docker ps
    CONTAINER ID      IMAGE               COMMAND                  CREATED             STATUS              PORTS                             NAMES
    e8b0d9697474     nginx:latest        "nginx -g 'daemon of…"   19 minutes ago      Up 19 minutes       80/tcp, 0.0.0.0:32774->8080/tcp   cool_gauss
    
    
    2、修改配置文件:(这里的路径只是我的路径,你的路径使用你的容器ID)
    root@zhengzelin:~# vim /var/lib/docker/containers/e8b0d9697474f...../hostconfig.json
    
    
    3、找到里面关于 HostPort 的配置选项:
    "PortBindings":{"8080/tcp":[{"HostIp":"","HostPort":""}]}
    
    # 将这个端口改为你要更改的端口即可!除了 tcp ,你还可以使用 udp;
    # 默认是tcp,如果使用 udp的话,你得提前声明 : 8080/udp
    如果你的这里和我显示的不一样,你可以参考这篇文章:http://www.360doc.com/content/20/0419/18/835902_907077226.shtml
    
    
    4、重启docker 服务,重启 容器 !!!(强烈不推荐使用该方法!)
    

    修改容器 hostname 和 ip(也不推荐,只是告诉方法:)

            在上面那个路径: /var/lib/docker/容器ID/ 目录下,还有其他两个配置文件: hostname 和 hosts ,你查看一下就知道了!不过也需要 重启服务 和 容器,谁闲的没事更改这些配置啊,不推荐使用!
           


           

    方法3、使用 iptables 规则 :

    1、获取容器的 IP:

    格式: docker inspect 容器ID/容器名 | grep -i ipaddress
    
    root@zhengzelin:~# docker inspect cool_gauss | grep -i ipaddress
                "SecondaryIPAddresses": null,
                "IPAddress": "172.17.0.2",
                        "IPAddress": "172.17.0.2",
    

    将 容器的8000端口映射到docker主机的8001端口

    iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.2:8000
    
    展开全文
  • ubuntu修改hostname

    2019-06-17 14:59:31
    ubuntu安装以后缺省的hostname是ubuntu...修改/etc/hostname文件就可以了, root@ubuntuServer:/etc# more hostname #ubuntu newname 但是这样一来在X下面,很多命令不正常,比如打开terminal出不来,原来还需要...
  • 以下是 docker node ls 命令的执行结果 解决方法: hostnamectl set-hostname worker02-node service docker restart 成功
  • 昨天发现开发环境的3台kafka无法消费,所以今日kafka的容器执行如下语句 bash-4.4# ./kafka-topics.sh --describe --zookeeper 192.168.0.170:2181 --topic nova2_plantree_topicTopic:nova2_plantree_topic ...
  • 在Ubuntu 16.04及多数Linux版本中,如需要修改hostname,直接修改/etc/hostname文件即可。但是在Ubuntu 18.04及18.10中,修改/etc/hostname文件后,重启电脑就会恢复原始的设置。 原因:Ubuntu在新版中默认安装了...
  • hadoop修改hostname配置为IP配置

    千次阅读 2020-01-19 16:17:26
    <name>dfs.namenode.datanode.registration.ip-hostname-check <value>false 说明:默认为true,namenode连接datanode时,会进行host解析查询 <name>dfs.namenode.shared.edits.dir <value>qjournal://10.237....
  • docker容器修改hosts文件,重启失效问题解决
  • 容器中使用 hostname 访问外部服务 AWS 上有一个集群服务, VPS 之间使用 ip-xx-xx-xx-xx 是可以直接访问的. 现在有个需求, 要在某几台机器部署 docker, 在容器内访问集群内的服务. 并且使用 hostname 实现. # 创建 ...
  • alias 别名是hash的前几位,见hostname 文件。 模仿即可。 注意:一:先停止docker ,二:它的json是一行的。保存时,也要是一行的。你可以先格式化。再在线压缩成一行。三:“NetworkID” "EndpointID"这些不知道...
  • 修改Docker容器启动配置参数

    千次阅读 2020-08-10 10:52:16
    刚创建nacos容器时,忘记了添加参数--restart=always,当 Docker 重启时,容器未能自动启动。 现在需要修改参数 1、docker命令修改 docker container update --restart=always 容器名字 [root@10-13-4-243 ~]# ...
  • 修改容器配置使其永久生效 1、介绍 docker命令中给出修改容器的配置内容很有限,只能改cpu、内存等配置信息。大部分属性都是在创建容器时指定的,如果后期需要重新指定或增加新设置会很麻烦。这里给出直接修改配置...
  • 一个简单的场景:>... 1个配置服务器> 1个Zull网关>...我对它们进行了docker化,使其可以在每个应用程序的单独容器上运行,并在Windows上的Docker上进行了测试.部署(配置服务器,zull和b-ms)后,我...
  • docker/k8s修改容器hosts文件

    千次阅读 2019-06-27 20:23:25
    docker容器的rootfs由只读层,init层和可读写层。 我们的/etc/hosts和/etc/resolv.conf等只对当前容器生效的信息会保留在init层,进行docker commit时不会提交这一层的信息。 所以Dockerfile中对/...
  • Docker修改池空间大小 容器空间大小

    千次阅读 2019-07-24 16:58:32
    Docker默认空间大小分为两个,一个是池空间大小,另一个是容器空间大小。 池空间大小默认为:100G 容器空间大小默认为是:10G 所以修改空间大小也分为两个: 这里使用centos下的yum进行安装的Docker。 首先,修改...
  • Docker容器修改hosts文件重启不变

    千次阅读 2017-08-10 13:19:54
    1./etc/hosts, /etc/resolv.conf和/etc/hostname容器中的这三个文件不存在于镜像,而是存在于于/var/lib/docker/containers/,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部。因此,如果在容器修改...
  • 修改docker容器端口映射的方法

    千次阅读 2018-11-05 01:00:14
     1、停止docker服务 systemctl stop docker ...2、修改这个容器的hostconfig.json文件中的端口(如果config.v2.json里面也记录了端口,也要修改) 3、启动docker服务 systemctl start docker ...
  • 在日常docker的运维中,经常遇到这样一个问题:已经配置运行的docker容器要根据业务需要增加端口映射到宿主机,如何简单有效的解决呢? 下面以mysql容器为例,详细说明操作步骤。 一、环境准备: # cat /etc/...
  • 背景 编写的docker-compose文件内容如下: version: '2' services: MSPW08: container_name: mspw08 image: web:1.0.0 working_dir: /home/ewang hostname: mspw08 ports: - 8089:8080 netwo...
  • 修改已运行docker容器端口映射

    千次阅读 2019-03-01 09:46:54
    在项目中我们一般通过命令启动一个容器的时候,通常会通过命令指定容器与物理机网络端口的映射。例如下面这个命令就会运行一个nginx容器,并且指定它的容器内的端口80与物理机中的端口8080进行映射。 sudo docker ...
  • 一、更改创建后容器映射关系的几种方式二、通过删掉容器重新创建的方式更改映射关系三、通过构建镜像的方式更改映射关系四、通过更改配置文件更改映射关系对目录映射对config.v2.json文件更改对hostconfig.json修改...
  • hostname在docker中是使用UTS namespace进行隔离的。docker中主要有两种ns的用法, 一种是docker run --uts="" busybox。这种会新创建一个新的uts ns。 一种是docekr run --uts="host" busybox。这种创建的容器将会...
  • 如何通过机器名hostname访问机器

    千次阅读 2019-01-05 17:02:41
    set-hostname NAME Set system hostname set-icon-name NAME Set icon name for host set-chassis NAME Set chassis type for host set-deployment NAME Set deployment environment for host set-location ...
  • 关于docker容器修改/etc/hosts文件

    万次阅读 2018-07-20 08:57:36
    容器启动起来修改成功后,下次容器重启会丢失,因此,我们需要将ip hostname 在做镜像的时候写进去。 CMD命令,启动容器的入口。可以在这个shell 脚本中加入: echo "ip hostname" &gt;&gt; /...
  • 参考文章:如何修改运行中的docker容器的端口映射和挂载目录 ...方法二:修改容器配置文件,重启docker服务 容器的配置文件路径: /var/lib/docker/containers/[hash_of_the_container]/hostconfig.jso
  • Docker修改hosts方法

    千次阅读 2020-08-12 11:47:46
    直接进入容器修改/etc/hosts 缺点:重启容器后,增加的内容会丢失 方法二: 制作镜像的时候,直接修改。 限制: 需要是root用户,需要在容器中安装sudo 增大了镜像大小 方法三: 使用docker run...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,933
精华内容 11,173
关键字:

修改容器hostname