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つのサービス db
と web
と持つプロジェクトの名前を myapp
とすると、Compose は myapp_db_1
と myapp_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.pem
、 cert.pem
、key.pem
ファイルのパスを設定します。デフォルトは ~/.docker
です。
COMPOSE_HTTP_TIMEOUT¶
Compose が Docker デーモンに対する処理が失敗(fail)したとみなす時間(秒単位)を設定します。デフォルトは 60 秒です。