Dockerで仮想化環境を構築

DockerはWindowsやmacOS、Linuxなど色々なOSに対応しています。公式サイトより該当OSのパッケージをダウンロードし、インストーラーにしたがってインストールを進めてください。

環境構築はKitematic(カイトマティック)というツールを使用するとGUI操作で環境を構築できますが、本記事ではCUIのコマンドラインを利用して環境を構築します。

Webサーバーを構築する

それではDockerHubで公開されているnginxの公式イメージを使用してWebサーバーを構築してみます。次の動画は、実際にWebサーバーを構築する手順を撮影したものです。コマンドを1つ実行するだけで簡単にWebサーバーが構築できる様子が確認できます。

DockerHubの各イメージのページには使用方法が記載されています。こちらの仕様に沿って環境を構築していきます。

nginxのコンテナを起動するため、コマンドラインから(Windowsではコマンドプロンプト、macOSではターミナル.appを立ち上げ)、次のコマンドを実行します。

$ docker run --name webserver -d -p 8090:80 -v /Users/xxxx/nginx/www:/usr/share/nginx/html nginx:latest

/Users/xxxx/nginx/wwwの部分は、ホスト(起動元のPC)の任意のディレクトリーパス(コンテンツが配置されているディレクトリー)を指定します。Windows環境をご利用の方はC:¥Users¥xxxx¥nginx¥wwwのようにドライブ名を含んだ絶対パスを指定します。

コマンドを実行後、http://localhost:8090/ またはhttp://(ホストのIPアドレス):8090/にアクセスするとWebサーバーが起動していることが確認できます。オプションで指定した/Users/xxxx/nginx/wwwのディレクトリーにindex.htmlなどを作成し、ブラウザーからアクセスしてみてください。

このコマンドでは次の通りオプションを設定しています。

$ docker run --name [コンテナ名] -d -p [ホストのポート]:[コンテナのポート] -v [ホストのディレクトリーパス]:[マウント先のパス] [イメージ名]

docker runはDockerイメージを元にコンテナを生成するコマンドです。このコマンドではnginxというDockerイメージの最新バージョン(latest)でコンテナを生成しています。ローカルにイメージがない場合はDockerHubから自動的に取得してくれます。

--nameオプションではコンテナに任意の名前を指定できます。省略した場合はランダムで名前が指定されますが、複数コンテナを立ち上げた場合に管理しづらくなるため、適当な名前を指定しておきます。

-dはデタッチドモードとしてバックグラウンドで動作させることができるオプションです。また-pオプションを指定することで、ホスト(起動元のPC)の8090ポートとコンテナの80ポートの対応付けが行われ、コンテナにポートフォワーディングでアクセスできるようになります。

-vオプションは、ホスト(起動元のPC)のディレクトリーをコンテナにマウントします。この設定を行うことで/Users/xxxx/nginx/wwwのディレクトリーがWebサーバーのサイトルートになりますので、このディレクトリにコンテンツを格納すれば、デプロイをおこなわずとも最新のコンテンツがWebサーバーに反映されます。

また、起動したコンテナは、次のコマンドを実行することで起動・停止が行えます。コンテナ名・コンテナIDはdocker psコマンドで確認できます。

コンテナを起動する

$ docker start [コンテナ名 or コンテナID]

コンテナを停止する

$ docker stop [コンテナ名 or コンテナID]

コンテナを削除する

$ docker rm [コンテナ名 or コンテナID]

起動中のコンテナ一覧を表示

$ docker ps

停止中のコンテナも含めたすべてのコンテナ一覧を表示

$ docker ps -a

次のページでは、WordPressの環境を構築する手順を紹介します。