docker-compose コマンド概要

このページは docker-compose コマンドの使い方に関する情報を提供します。この情報はコマンドライン上で docker-compose --help を使っても確認できます。

Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE           Specify an alternate compose file (default: docker-compose.yml)
  -p, --project-name NAME   Specify an alternate project name (default: directory name)
  --verbose                 Show more output
  -v, --version             Print version and exit

Commands:
  build              Build or rebuild services
  config             Validate and view the compose file
  create             Create services
  down               Stop and remove containers, networks, images, and volumes
  events             Receive real time events from containers
  help               Get help on a command
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pulls service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  unpause            Unpause services
  up                 Create and start containers
  version            Show the Docker-Compose version information

docker-compose は Docker Compose のバイナリです。このコマンドを使い Docker コンテナ上の複数のサービスを管理します。

Compose 設定ファイルの場所を指定するには、 -f フラグを使います。複数の -f 設定ファイルを指定できます。複数のファイルをしていすると、Compose は1つの設定ファイルに連結します。Compose はファイルを指定した順番で構築します。後に続くファイルは、既に実行したものを上書き・追加します。

例えば、次のようなコマンドラインを考えます。

$ docker-compose -f docker-compose.yml -f docker-compose.admin.yml run backup_db`

docker-compose.yml ファイルは webapp サービスを指定しています。

webapp:
  image: examples/web
  ports:
    - "8000:8000"
  volumes:
    - "/data"

また、 docker-compose.admin.yml ファイルで同じサービスを指定すると、以前のファイルで指定した同じフィールドの項目があれば、それを上書きします。新しい値があれば、 webapp サービスの設定に追加します。

webapp:
  build: .
  environment:
    - DEBUG=1

-f- (ダッシュ)をファイル名として指定すると、標準入力から設定を読み込みます。設定に標準入力を使う場合のパスは、現在の作業用ディレクトリからの相対パスとなります。

-f フラグはオプションです。コマンドラインでこのフラグを指定しなければ、Compose は現在の作業用ディレクトリと docker-compose.yml ファイルと docker-compose.override.yml ファイルのサブディレクトリを探します。もし、2つのファイルが指定されると、1つの設定ファイルに連結します。 このとき、 docker-compose.yml ファイルにある値は、 docker-compose.override.yml ファイルで設定された値で上書きされます。

詳しくは COMPOSE 環境変数 をご覧ください。

各設定ファイルはプロジェクト名を持っています。 -p フラグでプロジェクト名を指定できます。フラグを指定しなければ、Compose は現在のディレクトリの名前を使います。詳細は COMPOSE_PROJECT 環境変数 をご覧ください。