docker-composeは複数のコンテナをまとめて管理しやすくするためのコマンドツールで、docker-compose.ymlというyaml形式のファイルでコンテナの実行や停止、削除をおこなうことができる。
今回はdocker-composeの簡単な使用例として、WordPress環境を構築する例を紹介する。
コンテンツ
docker-compose.ymlの記述
WordPressはWebサーバーとMySQLサーバーにより成り立つので、以下のとおり二つのサービスから成るyamlファイルを作成する。
version: '3'
services:
wordpress:
image: wordpress
ports:
- 80:80
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: wp_pass
depends_on:
- mysql
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: sample
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: wp_pass
コード解説
version: '3'
まず、上記のコードはバージョン指定で、docker-composeのVersion3の文法に従うことを表す。
services:
wordpress:
...
mysql:
...
次にservicesでは使用するサービスを定義しており、今回はwordpressとmysqlの二つのサービスを定義している。
wordpress:
image: wordpress
ports:
- 80:80
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: wp_pass
depends_on:
- mysql
wordpress内の定義では、imageで使用するDockerイメージの指定、portsでDockerホストとコンテナの接続ポート指定、environmentで3つの環境変数を設定している。
depends_onは依存関係の指定で、ここではmysqlに依存していることを表している。
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: sample
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: wp_pass
mysql内では、イメージの指定と環境変数の設定のみをおこなっており、WordPressで使用するDBの設定をおこなっている。
upコマンドでコンテナを起動
docker-compose.ymlの用意ができたら、下記のコマンドを実行する。
docker-compose up -d
-dオプションはdetachモードの略で、バックグラウンドでコンテナを動作させるオプション。
localhostへアクセス
ブラウザでlocalhostへアクセスし、WordPressのインストール画面が表示されればOKだ。