第18回 Dockerで植物が育つ様子を自動録画してみよう――その2古賀政純の「攻めのITのためのDocker塾」(1/3 ページ)

Dockerコンテナを使って動画の撮影や活用のための環境を構築する方法をご紹介します。今回は環境を具体的に構築する手順を取り上げます。

» 2016年03月16日 08時00分 公開

※バックナンバーはこちら

Motionとhttpdが稼働するDockerイメージを作成する

 今回、録画した動画データは、WebブラウザでホストOSからWebブラウザでアクセスし、ダウンロードできる必要があります。そこで、Dockerコンテナ上で、Motionだけでなく、Apache Webサーバの「httpd」も稼働させます。

 また、Motionとhttpdを一つのDockerコンテナで動かすために、連載第15回第16回でご紹介したSupervisorを使います。前回の第16回では、Monitと呼ばれるSupervisorと同様のソフトウェアで、Webブラウザ経由でのサービス監視をご紹介しましたが、今回はSupervisorでも同様にWebブラウザ経由でMotionとhttpdサービスの死活監視を行うようにします。

httpdとmotionの起動と監視

ホストOSのディレクトリをコンテナから利用する方法

 Motionが稼働するコンテナは、Motionの設定ファイル内で指定したディレクトリに画像・動画を保管します。そのため、Motionが稼働するDockerコンテナ内のファイルシステムに画像・動画データが保管されます。しかし、Motionが稼働するDockerコンテナを終了させると、ファイルシステムも開放されてしまいますので、Dockerコンテナ内で保存した画像・動画ファイルを永続的に利用することができません。

 そこで今回は、Dockerコンテナが利用するディレクトリをホストOSの特定ディレクトリに関連付けることで、録画アプリがコンテナ内からホストOS上の特定ディレクトリに画像・録画データを保存できるようにします。これは、Dockerにおける「ボリューム」と呼ばれる機能で実現できます。具体的には、コンテナ実行時に「-v」オプションによって以下のように指定します。


# docker run -it -v /hostdir:/ctdir --name test0001 centos:centos7.2.1511 /bin/bash

 上記の例では、ホストOSの「/hostdir」ディレクトリをコンテナ上の「/ctdir」ディレクトリに対応付けます。コンテナ上の「/ctdir」ディレクトリにファイルを書き込むとホストOS上の「/hostdir」に書き込まれるため、コンテナが終了しても、ホストOSから目的のファイルを取り出すことができるのです。

ホストOSのディレクトリを利用する一般的な方法

 それでは、具体的にMotionとhttpdが稼働するDockerコンテナを作成してみます。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ