繁体   English   中英

设置在Kubernetes中运行的容器的主机名

[英]Setting the hostname for a container running in Kubernetes

我想在Kubernetes中运行的容器中设置主机名,但Kubernetes似乎覆盖了我在运行时设置的任何内容。

我已尝试在Docker镜像中设置/ etc / hostname,我正在使用Kubernetes,并在Dockerfile的CMD中包含echo "host.example.com > /etc/hostname"

似乎有一个docker标志-h来设置主机名。 有没有办法让我在复制控制器中指定应该使用特殊标志启动容器?

容器的Debian,如果有帮助的话。

我以前的回答是不正确的,用正确的信息编辑

docker run-h标志将在您创建容器时设置容器的主机名。

测试一下: docker run -h test.example.com -it ubuntu /bin/bash

但是, --hostname docker start命令没有相同的-h--hostname参数。 似乎无法更改现有容器的主机名,只能更改映像中的新主机名。

然而w / r / t Kubernetes: Github上有一个关于Kubernetes如何处理主机名的问题。 Kubernetes似乎没有直接公开docker的主机名设置,但您可以通过您的pod名称来影响它

我找到了在容器运行后更改docker主机名的答案,或者我可以对现有容器说这里有一些步骤

  1.  docker inspect -f '{{ .State.Pid }}' <existing_docker_hostname> 

    输出数字<15580>

  2. 运行此命令以登录容器

     nsenter --target 15580 --uts 
  3. 运行此命令以更改主机名

     hostname "node_js" 

现在退出容器并再次登录,您将看到主机名已更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM