第26回 32ビット環境に迫る「2038年問題」 検証における5つの疑問:古賀政純の「攻めのITのためのDocker塾」(2/4 ページ)
前回は32ビット環境に忍び寄る「2038年問題」に触れました。Dockerを使った仮想環境での延命措置も期待されますが、実際のところはどうなのでしょうか。今回はその検証に向けた考察をしてみます。
疑問2.64ビットのLinux上で32ビット版のDockerコンテナを問題なく稼働させることができるのか?
次は疑問2です。32ビット版OSテンプレートのDockerイメージを使えば、64ビットのホストOS上で、32ビット版のDockerコンテナを稼働させることができそうです。試しに、32ビット版のCentOS 6.xを稼働させてみましょう。今回は、上記の検索結果にリストアップされているイメージ「tenforward/centos-i386」を入手します。CentOS 7.xが稼働するホストOS上で、以下のように入力します。
# docker pull tenforward/centos-i386 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE tenforward/centos-i386 latest 770feb90cf03 2 years ago 578.8 MB
入手した32ビット版CentOSのDockerイメージからDockerコンテナが起動するか試してみます。
# docker run -it --rm --name test0001 tenforward/centos-i386 /bin/bash bash-4.1#
無事に32ビット版CentOSのDockerコンテナが起動したようです。しかし、Dockerコンテナが本当に32ビットなのかは、どうやって分かるのでしょうか。Dockerコンテナのアーキテクチャが32ビットかどうかを知るには、getconfコマンドに「LONG_BIT」を付与します。
bash-4.1# getconf LONG_BIT 32
上記のように「32」と出力される場合、そのコマンドを実行した環境は32ビットアーキテクチャであると言えます。すなわち、Dockerコンテナが32ビット環境ということです。また、Dockerコンテナ上にインストールされているパッケージが32ビット版かどうかを確認してみましょう。
bash-4.1# rpm -qa filesystem-2.4.30-3.el6.i686 libcap-2.16-5.5.el6.i686 popt-1.13-7.el6.i686 gamin-0.1.10-9.el6.i686 shadow-utils-4.1.4.2-13.el6.i686 file-libs-5.04-15.el6.i686 pcre-7.8-6.el6.i686 ... ...
パッケージ名の最後に「i686」とあり、32ビット版のパッケージがインストールされていると分かります。これにより、64ビットのホストOS上で、32ビット版のOSテンプレートのDockerイメージ「tenforward/centos-i386」からDockerコンテナを起動し、32ビットのアプリが稼働することが確認できます。
関連記事
- 第25回 32ビット環境に迫る「2038年問題」 時計がおかしくなると……
いまだ数多くのシステムで32ビットのOSやアプリケーションが使われていますが、実は深刻な影響が懸念される「2038年問題」を抱えています。将来どのような影響が出るのかについて、今回から「Docker」による検証を先取りしていきます。 - 第14回 「延命措置」で旧システムからDocker環境に移行する方法
古いIT資産をDocker環境へ移行するには多面的な検証が必要です。今回は「延命措置」のシナリオから、実際に古い物理サーバからDocker環境へ移行する手順を紹介します。 - 第9回 Dockerfileで“インフラストラクチャ・アズ・コード”を体験
“攻めのIT”を考える情シスリーダーが今後知っておくべき注目の技術「Docker」を基本から応用まで解説します。今回のテーマは「Dockerfileでインフラストラクチャ・アズ・コードを実体験」です。 - 【古賀政純の「攻めのITのためのDocker塾」】バックナンバー
Copyright © ITmedia, Inc. All Rights Reserved.