web-dev-qa-db-ja.com

UbuntuのtimedatectlがDockerコンテナーで失敗する

私はDockerコンテナー(macOSでホストされている)でUbuntu 16.04 LTSを実行しています。日時は約4日ずれています。

$ 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

発効日は2017年5月11日06:17:13 UTCです。

これを修正したかった( thisthis をチェックする)が、timedatectlさえ実行できない:

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

どうすれば修正できますか?

11
Marcel Stör

時間ドリフトは、Dockerの場合はmacOSではなく、実際にはLinux VM macOSで実行されています。基盤となるホストOSによって引き起こされます。これは、macOSのスリープ時間に関連しています(たとえば、MacBookのふたを閉じるとき) )どうやら最近修正されており、間もなく利用可能になるはずです: https://github.com/docker/for-mac/issues/17#issuecomment-30073481

1
Marcel Stör

尋ねられた実際の質問に答えるには(DockerコンテナーでFailed to create bus connection: No such file or directoryを実行するときにtimedatectl statusを修正する方法):

docker runコマンドに次のフラグを追加します。

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

--privilegedが必要です。それ以外の場合は、「サーバーのクエリに失敗しました:接続がピアによってリセットされました」と表示されます。ボリュームフラグはroで正常に機能するようです。

5
srlm