将 ShortHostName 添加到主机名文件,并将 ShortHostName.DOMAIN 添加到 Docker 容器中的 hosts 文件

将 ShortHostName 添加到主机名文件,并将 ShortHostName.DOMAIN 添加到 Docker 容器中的 hosts 文件

当我使用

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

相关内容