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

“攻めのIT”を考える情シスリーダーが今後知っておくべき注目の技術「Docker」を基本から応用まで解説します。今回のテーマは「Webサーバ入りDockerイメージの再利用」です

» 2015年09月02日 08時00分 公開

(前編へ戻る)

Apache Webサーバ入りDockerイメージを作ってみよう

 CentOS 6.6のDockerコンテナc0001を起動できましたので、このDockerコンテナc0001にApache Webサーバを入れてみましょう。Dockerコンテナにインターネットからパッケージを入手するには、yumコマンドを使います。

 ホストOSの場合と同様に、企業内LANにおいてプロキシサーバ経由で接続する場合は、設定をDockerコンテナ内のyum.confファイルに設定する必要があります。Dockerコンテナc0001のコマンドプロンプトが出ている仮想端末から、プロキシサーバを設定しておきます。


[root@host0001 /]# vi /etc/yum.conf
...
proxy=http://企業内のプロキシーサーバーのURL:ポート番号 
...

 Dockerコンテナのパッケージを最新にし、Apache Webサーバをインストールします。Dockerコンテナc0001のコマンドプロンプトが出ていることを確認して作業を進めてください。

[root@host0001 /]# yum update -y
[root@host0001 /]# yum install -y httpd
[root@host0001 /]# service httpd start
[root@host0001 /]# service httpd status
httpd (pid  179) is running...
[root@host0001 /]#

 これで、Dockerコンテナc0001にApache Webサーバがインストールされました。このDockerコンテナにテスト用ページ“test.html”を作成し、ホストOSからWebコンテンツが見えるかを確認してみましょう。テスト用のtest.htmlは以下のようにechoコマンドで作成します。

[root@host0001 /]# echo “Hello Docker.” > /var/www/html/test.html

 また、Dockerコンテナc0001に自動的に割り振られたIPアドレス(今回は、172.17.0.1/16が割り振られています)も確認しておきます。

[root@host0001 /]# ip a |grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
    inet 172.17.0.1/16 scope global eth0
    inet6 fe80::42:acff:fe11:1/64 scope link

 ではホストOSから“test.html”が表示できるか確認してみましょう。別の端末を開いて、ホストOSから確認してください。Webコンテンツの確認はWebブラウザでも構いませんし、ホストOSにインストールされているcurlコマンドで行うことも可能です。

# curl http://172.17.0.1/test.html
Hello Docker.

 以上で、Webサーバが稼働するDockerコンテナ「c0001」が、Webコンテンツ“test.html”をクライアントへ提供できていることが確認できました。実際の運用では、Apacheの起動方法などに関していくつかの工夫は必要になりますが、まずはApache Webサーバが入ったDockerコンテナがサービスを提供するところまでを理解してください。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.