当我使用
docker run --it --name myContainer --hostname myShortHostName ubuntu bash
这将添加myShortHostName
到/etc/hostname
文件。并且172.169.X.X myShortHostName
在/etc/hosts file
。
但在本例中,我使用hostname -f
命令来获取容器的,因为文件中FQDN
没有条目。而且我无法编辑它,因为每次容器启动时它都会被替换。FQDN
/etc/hosts
如果我使用:
docker run --it --name myContainer --hostname myShortHostName.DOMAIN ubuntu bash
这会将添加到FQDN
文件/etc/hostname
,这不是hostname
规则推荐的约定,也不是我管理的系统中使用的约定。
设置 FQDN 的推荐方法是使用 /etc/hosts、DNS 或 NIS 将主机名设为完全限定名称的别名。例如,如果主机名为“ursula”,则 /etc/hosts 中可能会有一行内容为
127.0.1.1 ursula.example.com ursula
有没有什么方法(实际上我需要理想的方法,而不是在启动容器后使用脚本编辑文件)只将短文件名添加myShortHostName
到/etc/hostname
文件,并使用命令或任何 Docker 内置命令或技术将 FQDN 添加到 /etc/hosts 文件docker run
?
我需要的是能够通过hostname -s
或获取ShortHostName hostname
,并通过在Docker 容器内部使用获取ShortHostName.DOMAIN(FQDN),hostname -f
而无需将FQDN添加到/etc/hostname
文件中。
答案1
--domainname
您可以通过将参数传递给命令来确保将 FQDN 添加到 Docker 容器中的 /etc/hosts docker run
。例如,使用以下命令运行容器:
docker run --it --name myContainer --hostname ursula --domainname example.com ubuntu bash
将导致在 /etc/hosts 中创建以下条目:
172.169.X.X ursula.example.com ursula