V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
psyer
V2EX  ›  问与答

请问 docker 如何永久修改主机名,以及固定 IP?

  •  
  •   psyer · 2021-04-02 18:55:06 +08:00 · 1703 次点击
    这是一个创建于 1110 天前的主题,其中的信息可能已经有所发展或是发生改变。

    初学者一枚。 docker 为最新版本,我在 docker 做 hadoop 集群的时候,在 Dockerfile 里写入:

    # 6. 修改主机名
    RUN echo "master" > /etc/hostname
    

    但是重启 docker 之后,主机名还是变成了一串英文+数字,类似这样 root@e1a36096e506. 有没有办法可以永久修改主机名,以及固定 IP 地址?

    12 条回复    2021-04-04 12:20:37 +08:00
    tomczhen
        1
    tomczhen  
       2021-04-02 18:58:00 +08:00 via Android
    发帖问网友。×
    去看官方文档。✓
    搜索 docker hostname 。√
    psyer
        2
    psyer  
    OP
       2021-04-02 20:15:48 +08:00 via Android
    @tomczhen 我知道运行时可以通过-h 指定主机名,不知如何永久生效。你有更好的办法吗?
    oott123
        3
    oott123  
       2021-04-02 20:47:52 +08:00
    因为你试图在 dockerfile 里做这个事情的思路是错误的。正确的办法就是通过 -h 指定主机名。
    walpurgis
        4
    walpurgis  
       2021-04-02 21:31:25 +08:00 via Android
    为什么 docker 需要主机名,要固定 ip,还要永久生效?请描述一下业务场景,避免 XY 问题
    Slartibartfast
        5
    Slartibartfast  
       2021-04-02 22:59:09 +08:00 via iPhone
    正确答案:Dockerfile 是 Image 描述,而 Hostname 是 Container 的属性。

    前者无法定义后者。
    psyer
        6
    psyer  
    OP
       2021-04-03 02:09:08 +08:00 via Android
    @walpurgis 正文写了,做的 Hadoop 集群。需要的固定的主机名和 IP 。
    psyer
        7
    psyer  
    OP
       2021-04-03 02:10:17 +08:00 via Android
    @oott123 谢谢。目前只能-h 制定了。
    psyer
        8
    psyer  
    OP
       2021-04-03 02:12:09 +08:00 via Android
    @Slartibartfast 谢谢。不过我也可以在 container 里面 vim /etc/hostname,修改之后重启也会失效。
    Phant0m
        9
    Phant0m  
       2021-04-03 05:27:15 +08:00 via iPhone
    如果是集群固定 IP 这个方法不如创建网络,然后集群在创建的网络下运行,docker 之间互通可以指定 alias 或者指定 link 网络,不需要通过 ip 来访问。
    Slartibartfast
        10
    Slartibartfast  
       2021-04-03 07:44:48 +08:00 via iPhone
    @psyer 那可以用 K8s 的 statefulset
    julyclyde
        11
    julyclyde  
       2021-04-04 11:21:39 +08:00
    @psyer 容器不存在“重启”这个动作。那叫销毁另建
    psyer
        12
    psyer  
    OP
       2021-04-04 12:20:37 +08:00 via Android
    @julyclyde 你是真的杠,你把 docker restart 吃了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1009 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 22:10 · PVG 06:10 · LAX 15:10 · JFK 18:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.