2017-06-14 83 views
0

我試圖使用命令錯誤而改變搬運工容器內的主機名

hostnamectl set-hostname test.ovirt.org 

改變泊塢窗容器中運行的CentOS的主機名,但它給了我回來的

Could not set property: Failed to execute program /lib64/dbus-1/dbus-daemon-launch-helper: Success 

回溯與退出代碼1.

這裏是相關的travis-CI構建追蹤

編輯

我運行的命令更改特拉維斯內部建立一個ansible任務裏面的主機名。使用交互模式編輯主機名不會是一種選擇。

回答

-1

如果您正在期待根據您的要求命名容器,則可以在運行容器時使用參數--hostname

# docker run --hostname=my-server -it ubuntu:15.0 /bin/bash 
[email protected]:/# hostname 
my-server 
[email protected]:/# 

EDIT1:當你需要在運行時改變,容器需要具有root權限才能更改主機名。默認情況下,Docker容器將具有有限的根權限。

當您嘗試更改主機名以下可能會發生錯誤說你應該有root權限:

# docker run -it ubuntu:15.0 /bin/bash 
[email protected]:/# hostname 
92b712251220 
[email protected]:/# hostname new-server 
hostname: you must be root to change the host name 
[email protected]:/# 

當你運行與--privileged選項這意味着運行的所有容器相同的容器在root權限,您將能夠更改主機名:

# docker run -it --privileged ubuntu:15.0 /bin/bash 
[email protected]:/# hostname new-server 
[email protected]:/# hostname 
new-server 
[email protected]:/# 

理想情況下,不運行帶有--privileged選項容器中的最佳實踐whic h完全控制不安全的主機。

+0

嘿,謝謝你的答案,但我一直在尋找一種方式,我將能夠在運行時更改主機名,而運行ansible劇本 –

+0

現在你檢查,通過與--privileged選項試圖爲解釋在答案中。 –

+0

嘿那裏,編輯了一些問題的細節,以提供清晰的,因爲我不能使用交互模式。 –