docker-compose CLI 概要¶
コマンドオプションの概要とヘルプ¶
このページに掲載するのは docker-compose
コマンドの使い方に関する情報です。
You can also see this information by running docker-compose --help from the command line.
この情報はコマンドライン上で docker-compose --help
を使っても確認できます。
Define and run multi-container applications with Docker.
Usage:
docker-compose [-f <arg>...] [--profile <name>...] [options] [COMMAND] [ARGS...]
docker-compose -h|--help
Options:
-f, --file FILE Specify an alternate compose file
(default: docker-compose.yml)
-p, --project-name NAME Specify an alternate project name
(default: directory name)
--profile NAME Specify a profile to enable
--verbose Show more output
--log-level LEVEL DEPRECATED and not working from 2.0 - Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
--no-ansi Do not print ANSI control characters
-v, --version Print version and exit
-H, --host HOST Daemon socket to connect to
--tls Use TLS; implied by --tlsverify
--tlscacert CA_PATH Trust certs signed only by this CA
--tlscert CLIENT_CERT_PATH Path to TLS certificate file
--tlskey TLS_KEY_PATH Path to TLS key file
--tlsverify Use TLS and verify the remote
--skip-hostname-check Don't check the daemon's hostname against the
name specified in the client certificate
--project-directory PATH Specify an alternate working directory
(default: the path of the Compose file)
--compatibility If set, Compose will attempt to convert deploy
keys in v3 files to their non-Swarm equivalent
Commands:
build Build or rebuild services
bundle Generate a Docker bundle from the Compose file
config Validate and view the Compose file
create Create services
down Stop and remove containers, networks, images, and volumes
events Receive real time events from containers
exec Execute a command in a running container
help Get help on a command
images List images
kill Kill containers
logs View output from containers
pause Pause services
port Print the public port for a port binding
ps List containers
pull Pull service images
push Push service images
restart Restart services
rm Remove stopped containers
run Run a one-off command
scale Set number of containers for a service
start Start services
stop Stop services
top Display the running processes
unpause Unpause services
up Create and start containers
version Show the Docker-Compose ve
Docker コンテナで複数のサービスを構築・管理するには、 Docker Compose のバイナリを使い、 docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
のようにして実行できます。
-f
を使い、Compose ファイルの名前とパスを指定¶
Compose 設定ファイルの場所を指定するには、 -f
フラグを使います。
複数の Compose ファイル指定¶
複数の -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
複数の Compose ファイルを指定する場合は、全てのパスは、1番目に -f
で指定した設定ファイルからの相対パスです。この基準となるパスを上書きするには --project-directory
オプションが使えます。
-f
に -
(ダッシュ)をファイル名として指定すると、標準入力から設定を読み込みます。設定に標準入力を使う場合のパスは、現在の作業用ディレクトリからの相対パスとなります。
-f
フラグはオプションです。コマンドラインでこのフラグを指定しなければ、Compose は現在の作業用ディレクトリと docker-compose.yml
ファイルと docker-compose.override.yml
ファイルのサブディレクトリを探します。もし、2つのファイルが同じディレクトリ階層にある場合、Compose は2つのファイルを1つの設定ファイルに連結します。
この時、 docker-compose.yml
ファイルにある値は、 docker-compose.override.yml
ファイルで設定し値で上書きします。
1つの Compose ファイルのパスを指定¶
現在のディレクトリに存在しない Compose ファイルのパスは指定可能です。そのためには、コマンドラインで -f
フラグを使い指定するか、あるいは、シェル上の COMPOSE_FILE 環境変数 もしくは環境変数ファイルで指定するかのどちらかです。
コマンドラインで -f
オプションを使う例として、 Compose Rails サンプル を使うと仮定すると、 docker-compose.yml
ファイルは sandbox/rails
という名前のディレクトリにあります。 docker-compose pull のようなコマンドを使い、 db
サービス用の postgres イメージを何らかの場所から取得するには、 -f`
フラグを次のように使います。 docker-compose -f ~/sandbox/rails/docker-compose.yml pull db
以下は、サンプルの全体です。
$ docker-compose -f ~/sandbox/rails/docker-compose.yml pull db
Pulling db (postgres:latest)...
latest: Pulling from library/postgres
ef0380f84d05: Pull complete
50cf91dc1db8: Pull complete
d3add4cd115c: Pull complete
467830d8a616: Pull complete
089b9db7dc57: Pull complete
6fba0a36935c: Pull complete
81ef0e73c953: Pull complete
338a6c4894dc: Pull complete
15853f32f67c: Pull complete
044c83d92898: Pull complete
17301519f133: Pull complete
dcca70822752: Pull complete
cecf11b8ccf3: Pull complete
Digest: sha256:1364924c753d5ff7e2260cd34dc4ba05ebd40ee8193391220be0f9901d4e1651
Status: Downloaded newer image for postgres:latest
-p
を使いプロジェクト名を指定¶
各設定ファイルはプロジェクト名を持ちます。 -p
フラグを追加すると、プロジェクト名を指定できます。このフラグを指定しなければ、Compose は現在のディレクトリ名をプロジェクト名として使います。 詳細は COMPOSE_PROJECT
環境変数 をご覧ください。
--profile
を使い1つまたは複数のアクティブなプロファイルを指定¶
docker-compose --profile frontend up `` を呼び出すと、プロファイル ``frontend
のサービスを起動し、プロファイルの指定が無いサービスも起動します。また、複数のプロファイル指定も可能であり、たとえば docker-compose --profile frontend --profile debug up
であれば frontend
と debug
を有効化します。
Compose で を使う と COMPOSE_PROFILES 環境変数 をご覧ください。
環境変数のセットアップ¶
-f
と -p
フラグを含む様々な docker-compose
オプション用の 環境変数 を指定できます。
たとえば、 -f
フラグに関係する COMPOSE_FILE 環境変数 や、 -p
フラグに関係する COMPOSE_PROJECT_NAME 閑居変数 です。
また、各環境変数は 環境変数用のファイル でも設定できます。
次に読む文章¶
参考
- Overview of docker-compose CLI