幻魔ナイトブログ

主に絵、音楽、プログラミングなどについて書きます。

docker-composeチートシート

参考

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

お問合わせはこちら