![](/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.