我正在尝试使用命令
更改运行centos的docker容器的主机名hostnamectl set-hostname test.ovirt.org
但它让我回到了
的追溯Could not set property: Failed to execute program /lib64/dbus-1/dbus-daemon-launch-helper: Success
退出代码为1.
以下是相关的travis-CI构建追溯
修改:
我正在运行命令来更改Travis构建中的ansible任务中的主机名。使用交互模式编辑主机名不是一个选项。
答案 0 :(得分:1)
如果您希望根据您的要求为容器命名,则可以在运行容器时使用参数--hostname 。
# docker run --hostname=my-server -it ubuntu:15.0 /bin/bash
root@my-server:/# hostname
my-server
root@my-server:/#
EDIT1:由于您需要在运行时更改,容器需要具有root权限才能更改主机名。默认情况下,Docker容器的root权限有限。
当您尝试更改主机名时,可能会发生以下错误,说您应具有root权限:
# docker run -it ubuntu:15.0 /bin/bash
root@92b712251220:/# hostname
92b712251220
root@92b712251220:/# hostname new-server
hostname: you must be root to change the host name
root@92b712251220:/#
当使用--privileged选项运行相同的容器,这意味着运行具有所有root权限的容器时,您将能够更改主机名:
# docker run -it --privileged ubuntu:15.0 /bin/bash
root@08c70ab0c9e3:/# hostname new-server
root@08c70ab0c9e3:/# hostname
new-server
root@08c70ab0c9e3:/#
理想情况下,使用--privileged选项运行容器并不是最好的做法,它可以完全控制不受保护的主机。
答案 1 :(得分:0)
您可能需要启用SYS_ADMIN
runtime privilege and capability