第6回 Dockerに触れ、マルチOSを実体験してみよう(前編)古賀政純の「攻めのITのためのDocker塾」(2/2 ページ)

» 2015年08月19日 08時00分 公開
前のページへ 1|2       

Dockerを起動し、Dockerコンテナを複数稼働させてみる

 ホスト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イメージを入手し、カスタマイズやアプリケーションのインストールを行い、手元のマシンで再びイメージ化して保管することが可能です。

photo OSテンプレートの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実践入門」などがある。趣味はレーシングカートとビリヤード



関連キーワード

Docker | CentOS | 攻めの経営 | Linux


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ