Docker Compose -  CLI リファレンス

# Docker Compose -  CLI リファレンス

原文：Compose CLI reference
https://docs.docker.com/compose/cli/

大部分の Docker Compose コマンドは、１つまたは複数のサービスを実行するためのものです。サービスが指定されない場合、コマンドは全てのサービスを実行しようとします。

使い方に関する情報を全て表示するには、`docker-compose [コマンド] --help` を実行ください。

## コマンド

### build

サービスの構築(build)か再構築をします。

サービスは１度だけ構築されるもので、例えば `compose_db` です。構築後は`project_service` とタグ付けされます。サービスの Dockerfile を変更するか、構築ディレクトリの内容を変更したときは、`docker-compose build` を実行し、再構築します。

### help

ヘルプとコマンドの使い方を表示します。

### kill

実行中のコンテナを強制停止するために `SIGKILL` シグナルを送信します。オプションで、シグナルを設定できます。例：

```
$ docker-compose kill -s SIGINT
```

### logs

サービスのログ出力を表示します。

### port

ポートをバインドしている公開ポート ( public port ) を表示します。

### ps

コンテナの一覧です。

### pull

サービス・イメージを取得します。

### restart

サービスを再起動します。

### rm

停止したサービス・コンテナを削除します。

### run

サービスを１度だけ実行するコマンド（One-off＝ワンオフ・コマンド）です。

例えば、

```
$ docker-compose run web python manage.py shell
```

このコマンドは `web` サービスを開始し、`manage.py shell` を python で実行します。デフォルトでは、既に起動中だとしても、リンクしているサービスも起動するので注意してください。

ワンオフ・コマンドは、同じ設定の新しいコンテナを、サービス向けや、ボリューム、リンクなど期待通りに作成するためのものです。`run` を使うと、通常のコンテナとは２つの違いがあります。

1. コマンドは指定されたものを上書きします。そのため、`docker-compose run web bash` を実行すると、コンテナの web コマンド（デフォルトでは `python app.py` のようなもの）は `bash` で上書きされます。

2. デフォルトでは既にオープンしているポートとぶつかる場合、ポートを開きません。

リンクもまた、ワンオフ・コマンドによって他のコンテナのサービスの一部として作成されます。例えば、次のように実行したとします：

```
$ docker-compose run db psql -h db -U docker
```

これはリンクされた db コンテナ（必要に応じて作成・起動されたもの）に対して、インタラクティブな PostgreSQL シェルを開くものです。

もしコンテナとリンクしたくなければ、ワンオフ・コマンドを使って起動するときに、`--no-deps` フラグを指定します：

```
$ docker-compose run --no-deps web python manage.py shell
```

似たようなものとして、サービスのポートを作成したりホストにマップしたくなければ、`--service-ports` フラグを指定します：

```
$ docker-compose run --service-ports web python manage.py shell
```

### scale

サービスを実行するコンテナの数を指定します。

`service=数字` の引数によって、いくつ起動するか指定します。例：

```
$ docker-compose scale web=2 worker=3
```

### start

サービス用にコンテナを起動します。

### stop

稼働中のコンテナを削除せずに停止します。`docker-compose start` コマンドを使うと再び起動できます。

### up

ビルドや、作成（再作成）、起動、サービスへのコンテナのアタッチをします。

リンクされたサービスが起動していなければ、あわせて起動します。

デフォルトでは、`docker-compose up` を実行すると各々のコンテナの出力を合わせて表示します。それから終了（exit）すると、全てのコンテナが停止します。`docker-compose up -d` を実行すると、コンテナをバックグラウンドで起動し、実行したままにします。

デフォルトでは、既にサービス向けのコンテナが起動している場合、`docker-compose up` は停止した後に再作成します（[volumes-form](http://docs.docker.io/en/latest/use/working_with_volumes/)でマウントずみのボリュームは保存されます）。そして、`docker-compose.yml` を読み込み直します。コンテナを停止せずに再作成したい場合は、`docker-compose up --no-recreate` を使います。必要があれば、この指定により、コンテナを停止せずに起動したままにします。

## オプション

### --verbose

より詳細の出力を表示します。

### -v, --version

バージョン番号を表示して終了します。

### -f, --file ファイル名

設定を読み込むファイルを指定します。指定が無ければ、Compose は現在のディレクトリにある `docker-compose.yml` を探し、もしなければ、引き続いて親ディレクトリを探します。

### -p, -pproject-name プロジェクト名

プロジェクトの別名を指定します（デフォルトは、現在のディレクトリ名です）。

## 環境変数

Compose の動作を設定する環境変数があります。

変数は `DOCKER_` で始まるもので、これらは Docker コマンドライン・クライアントの設定で用いるものと同じです。もし boot2docker を使っているのであれば、`eval "$(boot2docker shellinit)"` を実行すると、正しい値が設定されます。

### COMPOSE_PROJECT_NAME

プロジェクト名を設定するもので、Compose によって開始される全コンテナ名の先頭に付けられるます。デフォルトでは現在作業しているディレクトリの `basename` を使います。

### COMPOSE_FILE

指定したファイルから設定を読み込みます。指定が無ければ、現在の作業ディレクトリにある `docker-compose.yml` を探し、もし無ければ引き続き親ディレクトリを探します。

### DOCKER_HOST

Docker デーモンの URL を設定島須。Docker クライアントのデフォルトは `unix://var/run/docker.sock` です。

### DOCKER_TLS_VERIFY

空白の文字列以外を指定すると、デーモンと TLS 通信を有効にします。

### DOCKER_CERT_PATH

TLS 認証に使うファイル `ca.pem`、`cert.pem`、`key.pem` のパスを指定します。デフォルトは `~/.docker` です。