Docker Compose - CLI リファレンス
原文:Compose CLI reference
https://docs.docker.com/compose/cli/
大部分の Docker Compose コマンドは、1つまたは複数のサービスを実行するためのものです。サービスが指定されない場合、コマンドは全てのサービスを実行しようとします。
使い方に関する情報を全て表示するには、docker-compose [コマンド] --help
を実行ください。
コマンド
build
サービスの構築(build)か再構築をします。
サービスは1度だけ構築されるもので、例えば 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
サービスを1度だけ実行するコマンド(One-off=ワンオフ・コマンド)です。
例えば、
$ docker-compose run web python manage.py shell
このコマンドは web
サービスを開始し、manage.py shell
を python で実行します。デフォルトでは、既に起動中だとしても、リンクしているサービスも起動するので注意してください。
ワンオフ・コマンドは、同じ設定の新しいコンテナを、サービス向けや、ボリューム、リンクなど期待通りに作成するためのものです。run
を使うと、通常のコンテナとは2つの違いがあります。
-
コマンドは指定されたものを上書きします。そのため、
docker-compose run web bash
を実行すると、コンテナの web コマンド(デフォルトではpython app.py
のようなもの)はbash
で上書きされます。 -
デフォルトでは既にオープンしているポートとぶつかる場合、ポートを開きません。
リンクもまた、ワンオフ・コマンドによって他のコンテナのサービスの一部として作成されます。例えば、次のように実行したとします:
$ 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でマウントずみのボリュームは保存されます)。そして、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
です。