timedatectl:无法创建总线连接:没有此文件或目录

timedatectl:无法创建总线连接:没有此文件或目录

场景:我正在尝试在基于 Ubuntu 18.04 docker 镜像的 docker 容器上设置时区。只需拉取镜像、更新并安装 systemd

> apt-get -y update
> apt-get -y install systemd

错误: 无法创建总线连接:没有该文件或目录

> timedatectl
> timedatectl: Failed to create bus connection: No such file or directory

问题:我遗漏了什么?

笔记:目录等中没有文件 localtime 和 timezone

> ls /etc/localtime 
> ls: cannot access '/etc/localtime': No such file or directory
> ls /etc/timezone 
> ls: cannot access '/etc/timezone': No such file or directory

我见过但没有解决,因为在我的例子中 dbus 没有丢失

> apt-get install dbus
> dbus is already the newest version (1.12.2-1ubuntu1.1).

谢谢

答案1

这是因为容器无法访问主机上的 system_bus_socket。您需要使用以下命令运行容器:

docker run -ti -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:ro imagename /bin/bash

然后您将能够使用 timedatectl 命令。

答案2

这对我有用

docker run --privileged -ti -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:ro imagename /bin/bash

Lauren 建议的解决方案与此相同,但添加了--privileged标记

相关内容