Compose CLI 入門

このセクションでは、 docker-compose コマンドで利用可能なサブコマンドについて説明します。1つまたは複数のサービスに対して、サブコマンドを実行できます。特定のサービスを実行するには、compose の設定ファイル上に記述したサービス名を指定します。サービス名を指定しなければ、設定ファイル上に記述した全てのサービスを実行します。

環境変数

Docker Compose のコマンドラインでの動作を設定するために、複数の環境変数を利用可能です。

DOCKER_ で始まる環境変数は、Docker コマンドライン・クライアントで用いられている設定と同じです。もしも docker-machine を使っているのであれば、 eval "$(docker-machine env my-docker-vm)" コマンドで適切な環境変数の値が設定されます(この例では、 my-docker-vm は Docker Machine で作成したマシンの名前です )。

COMPOSE_PROJECT_NAME

プロジェクト名を設定します。この値はコンテナの起動時に、コンテナのサービス名の先頭に付けられます。例えば、2つのサービス dbweb と持つプロジェクトの名前を myapp とすると、Compose は myapp_db_1myapp_web_1 と名前の付いたコンテナをそれぞれ起動します。

このプロジェクト名の設定はオプションです。設定をしなければ、 COMPOSE_PROJECT_NAME (Composeのプロジェクト名)が、デフォルトではプロジェクトのディレクトリを ベース名 にします。詳しくは コマンドライン・オプション -p をご覧ください。

COMPOSE_FILE

Compose 設定を含むファイルを指定します。指定しなければ、Compose は現在のディレクトリにある docker-compose.yml という名称のファイルを探します。あるいや、親ディレクトリにあれば、そちらを使います。詳しくは コマンドライン・オプション -f をご覧ください。

COMPOSE_API_VERSION

Docker API は、明確なバージョンを報告するクライアントに対してのみ応答します。 docker-compose を使う時、 client and server don't have same version error というエラーが出る場合は、このエラーを回避するために環境変数を設定します。バージョンの値がサーバのバージョンと一致するように設定します。

この変数を設定するのは、クライアントとサーバのバージョンが一致しない場合でも、一時的に回避してコマンドを実行したい場合です。たとえば、クライアントをアップグレードしていても、サーバのアップグレードまで待つ必要がある場合です。

この環境変数を設定すると、いくつかの Docker の機能が正常に動作しない可能性があります。実際にどのような挙動になるかは、クライアントとサーバのバージョンによって変わります。そのため、この環境変数を設定するのは、あくまで回避策であって、公式にサポートされている手法ではありません。

もしこの環境変数を設定して何か問題が起きた場合は、サポートに解決策を訊ねる前に、バージョンの差違を解消した後、環境変数を削除してください。

DOCKER_HOST

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

DOCKER_TLS_VERIFY

空白以外の何らかの値をセットすると、 docker デーモンとの TLS 通信を有効化します。

DOCKER_CERT_PATH

TLS 認証に使う ca.pemcert.pemkey.pem ファイルのパスを設定します。デフォルトは ~/.docker です。

COMPOSE_HTTP_TIMEOUT

Compose が Docker デーモンに対する処理が失敗(fail)したとみなす時間(秒単位)を設定します。デフォルトは 60 秒です。