簡體   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