
初学者一枚。 docker 为最新版本,我在 docker 做 hadoop 集群的时候,在 Dockerfile 里写入:
# 6. 修改主机名 RUN echo "master" > /etc/hostname 但是重启 docker 之后,主机名还是变成了一串英文+数字,类似这样 root@e1a36096e506. 有没有办法可以永久修改主机名,以及固定 IP 地址?
1 tomczhen 2021-04-02 18:58:00 +08:00 via Android 发帖问网友。× 去看官方文档。 搜索 docker hostname 。√ |
3 oott123 2021-04-02 20:47:52 +08:00 因为你试图在 dockerfile 里做这个事情的思路是错误的。正确的办法就是通过 -h 指定主机名。 |
4 walpurgis 2021-04-02 21:31:25 +08:00 via Android 为什么 docker 需要主机名,要固定 ip,还要永久生效?请描述一下业务场景,避免 XY 问题 |
5 Slartibartfast 2021-04-02 22:59:09 +08:00 via iPhone 正确答案:Dockerfile 是 Image 描述,而 Hostname 是 Container 的属性。 前者无法定义后者。 |
8 psyer OP @Slartibartfast 谢谢。不过我也可以在 container 里面 vim /etc/hostname,修改之后重启也会失效。 |
9 Phant0m 2021-04-03 05:27:15 +08:00 via iPhone 如果是集群固定 IP 这个方法不如创建网络,然后集群在创建的网络下运行,docker 之间互通可以指定 alias 或者指定 link 网络,不需要通过 ip 来访问。 |
10 Slartibartfast 2021-04-03 07:44:48 +08:00 via iPhone @psyer 那可以用 K8s 的 statefulset |