Dockerコンテナを使って動画の撮影や活用のための環境を構築する方法をご紹介します。今回は環境を具体的に構築する手順を取り上げます。
※バックナンバーはこちら
今回、録画した動画データは、WebブラウザでホストOSからWebブラウザでアクセスし、ダウンロードできる必要があります。そこで、Dockerコンテナ上で、Motionだけでなく、Apache Webサーバの「httpd」も稼働させます。
また、Motionとhttpdを一つのDockerコンテナで動かすために、連載第15回と第16回でご紹介したSupervisorを使います。前回の第16回では、Monitと呼ばれるSupervisorと同様のソフトウェアで、Webブラウザ経由でのサービス監視をご紹介しましたが、今回はSupervisorでも同様にWebブラウザ経由でMotionとhttpdサービスの死活監視を行うようにします。
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から目的のファイルを取り出すことができるのです。
それでは、具体的にMotionとhttpdが稼働するDockerコンテナを作成してみます。
Copyright © ITmedia, Inc. All Rights Reserved.