docker-composeは複数のコンテナをまとめて管理しやすくするためのコマンドツールで、docker-compose.ymlというyaml形式のファイルでコンテナの実行や停止、削除をおこなうことができる。
今回はdocker-composeの簡単な使用例として、WordPress環境を構築する例を紹介する。
Contents
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だ。