“攻めのIT”を考える情シスリーダーが今後知っておくべき注目の技術「Docker」を基本から応用まで解説します。今回のテーマは「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コンテナがサービスを提供するところまでを理解してください。
Copyright © ITmedia, Inc. All Rights Reserved.