小编dem*_*ong的帖子

如何在Dockerfile中处理特定的主机名,如-h选项

我使用CentOS 7作为docker守护进程主机和centos:6个Docker镜像.

我想安装一些需要可解析主机名作为非环回地址的软件.如果我使用-h选项运行docker镜像

docker run -i -t -h myhost centos:6 /bin/bash
Run Code Online (Sandbox Code Playgroud)

然后我可以安装该软件,因为容器中的/ etc/hosts自动配置就好了

[root@myhost /]# cat /etc/hosts
172.17.0.7  myhost
127.0.0.1   localhost    

[root@myhost /]# ping myhost
PING myhost (172.17.0.7) 56(84) bytes of data.
64 bytes from myhost (172.17.0.7): icmp_seq=1 ttl=64 time=0.033 ms
Run Code Online (Sandbox Code Playgroud)

但是如果我从Dockerfile创建一个图像,我就无法使用相同的方法.我测试了使用以下Dockerfile创建图像

FROM centos:6

ENV HOSTNAME myhost
RUN ping myhost
Run Code Online (Sandbox Code Playgroud)

在docker构建过程中,分配的主机名无法解析为动态ip addr,如下所示:

$ docker build -t testimage .
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM centos:6
 ---> a30bc9f3097e
Step …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

19
推荐指数
3
解决办法
3万
查看次数

标签 统计

docker ×1

dockerfile ×1