docker-compose コマンド概要

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

Docker で使う複数コンテナ・アプリケーションの定義と実行

使い方:
  docker-compose [-f=<引数>...] [オプション] [コマンド] [引数...]
  docker-compose -h|--help

オプション:
  -f, --file FILE             別の compose ファイルを指定 (デフォルト: docker-compose.yml)
  -p, --project-name NAME     別のプロジェクト名を指定 (デフォルト: directory name)
  --verbose                   詳細情報を表示
  -v, --version               バージョンを表示して終了
  -H, --host HOST             接続先のデーモン・ソケット

  --tls                       TLS を使う;--tlsverify の指定も含む
  --tlscacert CA_PATH         この CA で署名した証明書のみ信頼
  --tlscert CLIENT_CERT_PATH  TLS 証明書ファイルへのパス
  --tlskey TLS_KEY_PATH       TLS 鍵ファイルへのパス
  --tlsverify                 TLS を使いリモートを認証
  --skip-hostname-check       クライアントの証明書で指定されたデーモンのホスト名を確認しない。
                              (たとえば、docker ホストが IP アドレスの場合)

コマンド:
  build              サービスの構築または再構築
  config             compose ファイルの確認と表示
  create             サービスの作成
  down               コンテナ・ネットワーク・イメージ・ボリュームの停止と削除
  events             コンテナからリアルタイムにイベントを受信
  help               コマンド上でヘルプを表示
  kill               コンテナを kill (強制停止)
  logs               コンテナの出力を表示
  pause              サービスを一時停止
  port               ポートに割り当てる公開用ポートを表示
  ps                 コンテナ一覧
  pull               サービス用イメージの取得
  restart            サービスの再起動
  rm                 停止中のコンテナを削除
  run                1度だけコマンドを実行
  scale              サービス用コンテナの数を指定
  start              サービスの開始
  stop               サービスの停止
  unpause            サービスの再開
  up                 コンテナの作成と開始
  version            Docker Compose のバージョン情報を表示

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 環境変数 をご覧ください。

次はどこへ

参考

Overview of docker-compose CLI
https://docs.docker.com/compose/reference/overview/