Docker Composeとは
複数のコンテナを定義し実行するDockerアプリケーションのためのツール。YAMLファイルを使ってアプリケーションサービスを設定。主に、以下の場合に使う。
-
$docker run
コマンドが長くなるとき - 複数のコンテナをまとめて起動するとき
YAMLファイルの書き方例
dockerのコマンドが以下の場合のYAMLファイル例。
$ docker build .
$ docker run -it -v ~/Desktop/myapp:/myapp -p 3000:3000 <image> bash
YAMLファイルは以下のとおり。
version: '3'
services:
web:
build: .
ports:
- '3000:3000'
volumes:
- '.:/myapp'
tty: true
stdin_open: true
webの命名は任意だが、webかappがよく使われる。dockerのコマンド(runオプション)とYAMLファイルの対応は以下のとおり。
dockerコマンド | YAMLファイル |
---|---|
build | build: |
-i | stdin_open: true |
-t | tty: true |
-v | volumes: |
-p | ports: |
Docker Composeコマンド
Dockerコマンドとの対応は以下の通り。
コマンド | Dockerコマンド |
---|---|
docker-compose build | docker build |
docker-compose up | docker run |
docker-compose ps | docker ps |
docker-compose exec <sevice> <command> | docker exec <container> <command> |
docker-compose up --build | buildしてrun |
docker-compose down | stopしてrm |