![](/img/trans.png)
[英]Can I reach a container by it's hostname from another container running on another node in 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主机名的答案,或者我可以对现有容器说这里有一些步骤
跑
docker inspect -f '{{ .State.Pid }}' <existing_docker_hostname>
输出数字<15580>
运行此命令以登录容器
nsenter --target 15580 --uts
运行此命令以更改主机名
hostname "node_js"
现在退出容器并再次登录,您将看到主机名已更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.