【docker】docker内のサーバーの時間を変更しても反映されない

dockerで開発中、バッチの修正をしていて時間通りに動くか確認しようと思い、docker内のサーバーの時間を変更してみる

date -s “2024-01-01 00:00:00”

だが、変更しても反映されない???

設定間違えたかと思ったが設定は合っている

バッチが動かない!!

と思って焦ったが、これはどうもdocker内のサーバーだからぽい

dockerは所詮win上で動く仮想環境にすぎないので、ホストであるwindowsの時間を変更しないとdocker内のサーバーの時間も変更されないらしい

という事でwinの時間を変更!!

手順は以下

・powershellを管理者権限で起動

・set-date -date "2026-01-01 08:59:00" // 2026年1月1日の9時にバッチを動かしたい場合

これでwindowsの時間を見てみると、変更された!

試しにdockerのバッチログを見てみると

動いたーーー!!

という事で、docker内のサーバーの時間を変更したい場合は、ホストであるwindowsの時間を変更する必要があるので注意!!

テストが終わったら、winの時間を戻すのを忘れずに

Restart-Service W32Time -Force

これで自動で時間が戻ります。

コメント