docker-composeで立ち上げたコンテナの時間ズレ

問題

docker-composeで立ち上げたWordpressで記事を書いてみたら、投稿時間がずれていることに気づきました。

具体的に言うと

  • 実際の時間:18:30
  • 表示された投稿時間:17:47

みたいな感じ。

 

タームゾーンがズレている感じのズレではなく、中途半端に77分だけズレてます🤔

原因

結論からいうと、WSL2のカーネルの時間がズレていたのが原因でした。

順番に書いていくと、まずWordpressコンテナの時間はどうなってるんだろう?と思って、コンテナの中に入ってdateコマンドを実行してみたら、👇のようにコンテナの時間もズレてることに気づきました。

# date
Sat Nov 20 08:47:00 UTC 2021

要するにWordpressコンテナの時間が狂っているから、投稿時間もズレてしまっているらしい。

 

じゃあWordpressコンテナの時間を直せばいいんだな!と思ったのですが、コンテナの中って

  • hwclockコマンド(システムが保持している時間に合わせるコマンド)
  • ntpdateコマンド(どこかのNTPサーバーに問い合わせて時間をあわせるコマンド)

なども使えないみたいなのです。

え、じゃあムリゲーじゃね?と思ったのですが、ふとWSL2の方でもdateコマンドを実行してみたら、コンテナ内と同じだけ時間がズレていることに気づきました。

Docker Desktop for WindowsってカーネルにWSL2のものを使っているらしいので、じゃあWSL2のカーネルが保持している時間(?)がずれているのか?と思って、WSL2内で

sudo hwclock --hctosys

を実行したら、見事コンテナのほうも時間が直りました。

 

要するに、根本的な原因はWSL2のカーネルの時間だったのでした。

 

ちなみに、WSL2のカーネルの時間がズレていたのは、👇のようなバグがあったからかもしれないです

PCをスリープするとWSL 2の日時がずれるバグとそのワークアラウンド – Qiita

 

そんな感じです。

おわり

仮想環境
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。
元アフィリエイターなWEBエンジニアです。うんちコードなら書けます💩

お仕事あれば下さい。カジュアル面談もお気軽にお誘いください。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

penpenをフォローする
penpenをフォローする
penpenメモ

コメント

タイトルとURLをコピーしました