初学者一枚。
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
|