docker compose
は、複数のサービスを1つのファイルで、構築・管理することができます。
サービスをビルドする
docker imageを構築します。
docker compose build [OPTIONS] [SERVICE...]
キャッシュを用いずにimageを構築する
Dockerfile
を更新した場合などは、docker imageを更新する必要がありますが、上記のコマンドだとキャッシュを用いてイメージを構築するため、docker imageが更新されません。その場合は、--no-cache
を付けてキャッシュを使わないようにすることで、対応します。
dokcer compose build --no-cache [SERVICE...
imageをリポジトリから取得する
docker imageをpullします。
docker compose pull [SERVICE..]
docker-compose.yml
で設定した[SERVICE..]
を指定すれば、特定のimageをプルできます。
コンテナを作成して起動する
カレントディレクトリにあるdocker-compose.yml
で定義した複数のコンテナを作成・起動します。
$ docker compose up [OPTIONS] [SERVICE...]
バックグラウンドで起動する
バックグラウンドで起動するには、-d
または--detach
オプションを付けます。
$ docker compose up -d
プロジェクト名を指定して、バックグラウンドで起動する
-p
オプションでプロジェクト名を指定できます。
$ docker compuse -p <PROJECT NAME> up -d
コンテナを再作成して起動する
imageの更新をした場合時などは、コンテナを再作成してから、起動させます。
$ docker compose up --force-recreate
コンテナを作成して起動してコマンドを実行する
docker-compose.yml
で設定した[SERVICE]
を指定して、コンテナを作成し起動します。[COMMAND]
で起動時に実行するコマンドを指定できます。
$ docker compose run SERVICE [COMMAND]
コンテナを停止する
稼働中のコンテナを停止させます。
$ docker compose stop [SERVICE...]
稼働中のコンテナを停止させます。コンテナは削除されません。停止させたコンテナはdocker compose start
で再稼働できます。
コンテナを停止し、コンテナとネットワークを削除する
$ docker compose down
docker-compose.ymlの書き方
version: '3.7'
services:
container:
container_name: "test-container"
tty: true
tty
tty: true
にすると、コンテナが立ち上がったままになるらしい。
各コンテナのログを見る
-f
オプションを付けることで、ログが出力され続ける。
$ docker compose logs -f