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

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

  •  
  •   psyer · 202 天前 · 1020 次点击
    这是一个创建于 202 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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