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

标签 docker kubernetes

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

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

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

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

最佳答案

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

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

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

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

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

关于docker - 为在 Kubernetes 中运行的容器设置主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31552455/

相关文章:

kubernetes - 在Kubernetes的远程Flink集群上运行Apache Beam作业的问题

Docker swarm 不暴露端口

docker - docker-elasticsearch + kibana从保存的对象开始

git - 如何解决 Dokku 部署中的 pre-receive hook denied 错误?

mysql - apt-get : command not found in mysql docker CLI

c++ - Docker 中的 Microsoft 编译器

kubernetes - Kubeflow:图像拉->设备上没有剩余空间

docker - Kubernetes适用于多用户应用程序,每个项目具有特定的隔离资源

amazon-web-services - 部署不在nodeSelector kubernetes中

node.js - Kubernetes Nginx Ingress 和 Socket.io 连接问题