
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