it-swarm.com.de

Ubuntu-Timedatectl schlägt im Docker-Container fehl

Ich habe Ubuntu 16.04 LTS in einem Docker-Container (gehostet auf macOS) ausgeführt. Das Datum und die Uhrzeit sind um etwa vier Tage abgelaufen.

$ 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

Inkrafttreten ist 11 Mai 2017 06:17:13 UTC.

Ich wollte das Problem beheben ( this und this prüfen), aber ich kann nicht einmal timedatectl ausführen:

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

Wie kann ich das beheben?

7
Marcel Stör

Zeitverschiebungen werden durch das zugrunde liegende Host-Betriebssystem verursacht, das für Docker nicht macOS ist, sondern das Linux VM, das auf macOS läuft. Dies hängt mit den Schlafzeiten von MacOS zusammen (z. B. beim Schließen des MacBook-Deckels). Anscheinend wurde es kürzlich behoben und sollte bald verfügbar sein: https://github.com/docker/for-mac/issues/17#issuecomment-300734810

1
Marcel Stör

Um die eigentliche Frage zu beantworten, die gestellt wurde (wie Failed to create bus connection: No such file or directory beim Ausführen von timedatectl status in einem Docker-Container behoben werden kann):

Fügen Sie Ihrem docker run-Befehl die folgenden Flags hinzu:

--privileged
--volume /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:ro

Sie benötigen den --privileged, andernfalls erhalten Sie die Meldung "Fehler beim Abfragen des Servers: Verbindung von Peer zurückgesetzt". Das Volume-Flag scheint mit ro gut zu funktionieren.

3
srlm