次は疑問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ビットのアプリが稼働することが確認できます。
Copyright © ITmedia, Inc. All Rights Reserved.