zoukankan      html  css  js  c++  java
  • Docker容器如何修改hosts

    参考文章:Docker修改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给自动覆盖掉。

    如何高效的为Docker容器设置hosts?

    启动容器时,加参数

    开启容器时候添加参数–add-host machine:ip可以实现hosts修改

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

    在DockerFile中修改

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

    run.sh的内容如下:

    # 向hosts文件追加内容
    #cat /data/myhosts >> /etc/hosts
    echo "192.168.1.37 testgitlab.kuaidihelp.com"  >> /etc/hosts
     
    # 其他命令
     
    # 保留终端,防止容器自动退出
    /bin/sh
    
  • 相关阅读:
    sql server执行存储过程慢的问题
    Windows service
    moss网站模板的一些问题
    ACM题解报告——HD1012
    ACM题解报告——HD1496
    ACM题解报告——HD1253
    ACM题解报告——进制数取于余
    ACM题解报告——HD1058
    ACM题解报告——HD1548
    ACM解题报告HD1015
  • 原文地址:https://www.cnblogs.com/mrnx2004/p/11767354.html
Copyright © 2011-2022 走看看