前回は、Dockerの導入方法を紹介した。ここからはDockerによる簡単なアプリケーションの実行方法や、アプリケーションを組み込んだカスタムイメージの作成と配信方法を解説していく。まずは、図8のに示したpythonコマンドでのWebサーバーの実行方法から説明しよう。

# docker run -v /usr/sbin:/usr/sbin -v /usr/lib64:/usr/lib64 -v /usr/bin:/usr/bin -w /etc -d -p 8080:80 rhel /bin/python -m SimpleHTTPServer 80 
# docker ps 
CONTAINER ID	IMAGE							COMMAND				CREATED			STATUS		PORTS			NAMES
7f71d5c36828	registry.access.redhat.com/rhel:latest		/bin/python -m Simpl		24 minutes ago		Up 24 minutes	0.0.0.0:80->80/tcp	determined_hoover6
# curl localhost:8080/hostname 
↑コンテナー内の/etc/hostnameの内容を出力
7f71d5c36828
このマークで改行
図8●pythonコマンドでWebサーバーを実行する

 「docker run」コマンドで、pythonコマンドを実行する(-m SimpleHTTPServerでWebサーバーを実行。80番ポートを指定)コンテナーを起動している。ここで指定しているオプションの意味は以下の通り。

-v path/to/dir1:path/to/dir2
 バインドマウントを実行。これによりDockerホストのpath/to/dir1が、コンテナー内のpath/to/dir2にマウントされる。この例では、ホストの実行ファイルやライブラリをコンテナーから利用できるように指定している。

-w path/to/dir
 コンテナー内のworking directoryを指定する。この例では、pythonで実行したWebサーバーのドキュメントルートとして指定している。

-d
 バックグラウンドでコンテナーを実行する。

-p port1:port2
 ポートフォワーディングを実行。Dockerを起動するホストのport1(この例では8080番)へのアクセスを、コンテナー内のport2(この例では80番)に転送することで、外部ホストからのコンテナー内のアプリケーションへのアクセスが可能になる。