第18回 Dockerで植物が育つ様子を自動録画してみよう――その2:古賀政純の「攻めのITのためのDocker塾」(1/3 ページ)
Dockerコンテナを使って動画の撮影や活用のための環境を構築する方法をご紹介します。今回は環境を具体的に構築する手順を取り上げます。
※バックナンバーはこちら
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サービスの死活監視を行うようにします。
ホスト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から目的のファイルを取り出すことができるのです。
それでは、具体的にMotionとhttpdが稼働するDockerコンテナを作成してみます。
関連記事
- 第17回 Dockerで植物が育つ様子を自動録画してみよう――その1
今回からDockerコンテナを使って動画の撮影や活用のための環境を構築する方法をご紹介していきます。Webカメラの使い方や録画データの保存、構築した環境の管理などはどうすればいいのでしょうか――まずは導入準備編です。 - 第16回 1つのDockerコンテナでサービスをたくさん動かすには?(応用編)
Dockerコンテナで複数のサービスを動かすポイントを解説しましたが、今回はその応用編として具体的に3つの方法をご紹介します。 - 第15回 1つのDockerコンテナでサービスをたくさん動かすには?(基礎編)
サービスを稼働させる上で、ハイパーバイザ型の仮想化環境とDockerコンテナの環境では大きな違いがあります。まずは基礎知識から解説しましょう。 - 【古賀政純の「攻めのITのためのDocker塾」】バックナンバー
Copyright © ITmedia, Inc. All Rights Reserved.