参考
- 公式リファレンス
- Qittaの記事
docker-compose.yamlの説明
構築したい環境についての情報を記述するファイルでComposeファイルと呼ばれます。
ここではワードプレスのdocker-compose.ymlを例に説明します。
詳細説明は公式ページを参照してください。
http://docs.docker.jp/compose/compose-file.html
version: '3.3' services: wordpress: image: wordpress:latest depends_on: - db ports: - "18080:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: - ./html:/var/www/html db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress volumes: db_data:
Serviceとは?
httpd serviceやPostgres serviceをご存知でしょうか?
Linuxでいうところのserviceと同義と取るとざっくり理解できます。
よくwebとdbを異なるサーバーに構築しますが、docker-composeの場合、別々のサービスして記述することで独立したコンテナとして構築することができます。
上のWordPressの例でもWordpress(Web層)とdb(DB層)を別のサービスとして書いていますね。
image
構築に使用するDockerイメージのタグを指定します。
depends_on
サービス同士の依存感系を記述します。
environment
環境変数の設定をします。
コンテナを作成する
- docker-compose upをコマンドを使用します。このコマンドはdocker-compose.ymlがあるディレクトリで行います。
# cd <docker-compose.ymlがあるディレクトリ> # docker-compose up -d
dオプションは公式サイトによると「デタッチド・モード: バックグラウンドでコンテナを実行し、新しいコンテナ名を表示」するオプションです。 http://docs.docker.jp/compose/reference/up.html
コンテナを削除する
- トラブルなどがあってコンテナを1から作り直したい場合、以下のコマンドで永続化したDBボリュームごと削除できます。
# docker-compose down --volumes