Reputation: 23535
I've got Ubuntu 16.04 LTS running in a Docker container (hosted on macOS). The date/time is off by about four days.
$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
$ date
Sun May 7 05:57:21 UTC 2017
Effective date is 11 May 2017 06:17:13 UTC.
I wanted to fix this (checking this and this) but I can't even run timedatectl
:
$ timedatectl status
Failed to create bus connection: No such file or directory
How do I fix this?
Upvotes: 20
Views: 32034
Reputation: 23535
Time drift is caused by the underlying host OS which, for Docker, isn't macOS but actually the Linux VM running on macOS. It's related to macOS sleep times (e.g. when you close the MacBook lid). Apparently it has recently been fixed and should be available soon: https://github.com/docker/for-mac/issues/17#issuecomment-300734810
Upvotes: 4
Reputation: 3216
To answer the actual question that was asked (how to fix Failed to create bus connection: No such file or directory
when running timedatectl status
in a Docker container):
Add the following flags to your docker run
command:
--privileged
--volume /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:ro
You need the --privileged
, otherwise you get a "Failed to query server: connection reset by peer". The volume flag seems to work fine with ro
.
Upvotes: 9