いよいよ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.