ホストOSでDockerのサービスを起動し、Dockerのサービスが正常に稼働しているかをホストOS上で確認します。
# systemctl start docker # systemctl status docker ... Active: active (running)
「Active: active (running)...」と出力されていたら、Dockerはひとまず正常に稼働しています。続いて、ホストOSを再起動してもDockerサービスが起動するようにしておきます。
# systemctl enable docker
では、さっそくホストOSでDockerコンテナを次々と稼働させてみましょう。
Dockerでは、コンテナのOSテンプレートとなるイメージをインターネット経由でダウンロードできます。このOSテンプレートのイメージは、「Dockerイメージ」と呼ばれ、CentOS 7.xや、CentOS 6.xはもちろん、openSUSE(オープン・スーゼ)、Debian(デビアン)、Ubuntu Serverなど、さまざまな種類のLinux OSのDockerイメージが用意されています。利用者は、このDockerイメージを入手し、カスタマイズやアプリケーションのインストールを行い、手元のマシンで再びイメージ化して保管することが可能です。
それでは、CentOS 6.6のイメージを入手してみましょう。イメージの入手には、以下のように「docker pull」を使います。
# docker pull centos:centos6.6
pullの後に「centos:centos6.6」と記述することで、CentOSというOSテンプレートのうち、centos6.6というタグがついたものをダウンロードするという意味になります。これにより、CentOS 6.6のOSテンプレートがインターネット経由でダウンロードされて、手元のホストOSにDockerイメージとして保管されます。入手したCentOS 6.6のDockerイメージが手元のマシンに保管されているかを確認してみましょう。
# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker.io/centos centos6.6 8b44529354f3 3 months ago 202.6 MB
202.6Mバイトのイメージが手元のマシンに保管されたことが分かります。このCentOS 6.6をDockerコンテナとして稼働させましょう。以下のように入力して下さい。
# docker run -i -t --name c0001 --hostname host0001 centos:centos6.6 /bin/bash [root@host0001 /]#
これで、Dockerコンテナが起動しました。プロンプトが変わっていることでそれが識別できます。念のため、DockerコンテナのOSのバージョンも確認してみましょう。
[root@host0001 /]# cat /etc/redhat-release CentOS release 6.6 (Final)
DockerコンテナがCentOS 6.6であることが確認できました。
ホストOSで別の仮想端末を開いて、ホストOSのコマンドプロンプトを出します。今度はCentOS 7.1のホストOS上から、さきほどのCentOS 6.6のDockerコンテナが稼働しているかどうかを確認してみます。
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS ... NAMES 5fa7658745bb centos:centos6.6 "/bin/bash" 3 minutes ago Up 3 minutes ... c0001
右端のNAMES列を確認してください。「c0001」となっています。これは、docker runしたときに、オプションで、--nameにより指定した文字列です。Dockerでは、コンテナに名前を付けて管理できます。
STATUSの列は「Up 3 minutes」となっています。これは、Dockerコンテナが起動してから3分が経過したことを示しています。すなわち、DockerコンテナがホストOS上で稼働し続けていることを意味しています。IMAGE列は「centos:centos6.6」とあります。元となるDockerイメージが何かもこのように分かります。
応用として、他のLinux OSのDockerイメージも入手し、Dockerコンテナを起動し、複数のLinux OSがコンテナとして稼働できるのかも確認してみましょう。ホストOSのコマンドプロンプトから、今度は、Ubuntu 14.04.2のDockerイメージを入手し、Dockerコンテナ「c0002」として起動してみます。
# docker pull ubuntu:14.04.2 # docker run -i -t --name c0002 --hostname host0002 ubuntu:14.04.2 /bin/bash root@host0002:/#
コマンドプロンプトが、「root@host0002:/#」に変わり、Ubuntu 14.04.2のDockerコンテナで作業できる状態になりました。Dockerコンテナc0002のOSのバージョンを確認してみましょう。
root@host0002:/# cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS"
現在操作しているDockerコンテナのOSが、Ubuntu 14.04.02 LTSであることが分かります。さきほどのCentOS 6.6と今回のUbuntu 14.04.2 LTSが同時に稼働しているかは、CentOS 7.1が稼働するホストOS上から、docker ps -aで確認してみてください。これで、CentOS 7.1上に、DockerによるマルチOS環境を構築することができました。
次回は「Webサーバ入りDockerイメージを作り、別のDockerコンテナで再利用する」といった応用を説明していきます。
(第7回はこちら)
日本ヒューレット・パッカード株式会社 オープンソース・Linuxテクノロジーエバンジェリスト。兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師、SIを経験。2006年、米国HPからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。現在は日本HPにて、Linux、FreeBSD、Hadoopなどのサーバー基盤のプリセールスSE、文書執筆を担当。Red Hat Certified Virtualization Administrator, Novell Certified Linux Professional, Red Hat Certified System Administrator in Red Hat OpenStack, Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「CentOS 7実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード
Copyright © ITmedia, Inc. All Rights Reserved.