第27回 32ビット環境に迫る「2038年問題」 検証で分かった事実古賀政純の「攻めのITのためのDocker塾」(2/4 ページ)

» 2016年08月10日 08時00分 公開

 いよいよ2038年問題の時刻を過ぎます。すると、どうなるのでしょうか。dateコマンドを思い切って入力してみてください。


bash-4.1# date
Sat Dec 14 05:46:02 JCST 1901

 なんと、時刻が「1901年12月14日5時46分」に戻ってしまいました。どこかで見た時刻です。そう、連載第25回で紹介した筆者のスマホと全く同じ現象です。すなわち、筆者のスマホで発生した2038年問題と全く同じ現象が32ビット版Dockerコンテナでも発生していす。

 当然ですが、この32ビットのDockerコンテナは正確な時刻ではありませんので、業務で使ってはいけません。ちなみに、64ビットのホストOS側はどうなっているのでしょうか。確認してみます。


# date
2038年  1月 19日 火曜日 12:14:21 JST

 ホストOS側は2038年以降の時を正確に刻んでいます。さらに、64ビットのDockerコンテナを起動して問題がないかも確認しておきます。前回入手した64ビット版のCentOS 6.8のDockerイメージを使って、Dockerコンテナを起動します。今回のDockerコンテナ名は、「test2038_64bit」にしました。


# docker run -it \
--rm \
--name test2038_64bit \
-v /etc/localtime:/etc/localtime:ro \
centos:centos6.8 /bin/bash

 dateコマンドで時刻を確認してみます。


[root@d1248cc8c0ab /]# date
Tue Jan 19 12:19:03 JST 2038

 やはり、64ビット版のDockerコンテナは2038年問題をクリアしています。このように、32ビット版のDockerコンテナ環境では2038年問題が発生し、64ビット版のDockerコンテナでは問題のないことが分かりました。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ