docker-compose コマンド概要
読む時間の目安: 4 分
このページはdocker-compose
コマンドの利用方法について示します。
コマンドオプション概要とヘルプ
以下は、コマンドラインから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 version information
Docker で使う複数コンテナーアプリケーションを定義して実行します。
利用方法:
docker-compose [-f <引数>...] [--profile <名前>...] [オプション] [コマンド] [引数...]
docker-compose -h|--help
オプション:
-f, --file FILE Compose ファイルを指定します。
(デフォルト: docker-compose.yml)
-p, --project-name NAME プロジェクト名を指定します。
(デフォルト: ディレクトリ名)
--profile NAME 有効にするプロファイルを指定します。
--verbose 詳細情報を表示します。
--log-level LEVEL 廃止予定であり 2.0 以降は動作しません。ログレベルを設定します。(DEBUG, INFO, WARNING, ERROR, CRITICAL)
--no-ansi ANSI コントロール文字を表示しません。
-v, --version バージョンを表示して終了します。
-H, --host HOST 接続先のデーモンソケット
--tls TLS を利用; --tlsverify が暗に利用する
--tlscacert CA_PATH この CA で署名した証明書のみ信頼
--tlscert CLIENT_CERT_PATH TLS 証明書ファイルへのパスを指定
--tlskey TLS_KEY_PATH TLS 鍵ファイルのパスを指定
--tlsverify TLS を利用しリモートを検証
--skip-hostname-check クライアント証明書に指定されたデーモンのホスト名に
対してのチェックを行いません。
--project-directory PATH ワーキングディレクトリを指定する
(デフォルト: Compose ファイルがあるディレクトリ)
--compatibility 設定時は v3 ファイル内のデプロイキーを、非 Swarm モード
での同等のキーへの変換を試みます。
コマンド:
build サービスの構築または再構築
bundle Compose ファイルから Docker bundle を生成
config Compose ファイルの検証と表示
create サービスの生成
down コンテナー、ネットワーク、イメージ、ボリュームの停止と削除
events コンテナーからのリアルタイムイベントの受信
exec 起動中コンテナーでのコマンド実行
help コマンドのヘルプ表示
images イメージ一覧の表示
kill コンテナーの強制停止(kill)
logs コンテナーからの出力を表示
pause サービスの一時停止
port ポートフォワーディングのための公開用ポートを表示
ps コンテナーの一覧表示
pull サービスイメージをプル
push サービスイメージをプッシュ
restart サービスの再起動
rm 停止中のコンテナーを削除
run ワンタッチの(one-off)コマンドを実行します。
scale サービスに割り当てるコンテナー数を設定
start サービスの起動
stop サービスの停止
top 実行中プロセスの表示
unpause サービスの再開
up コンテナーの生成と起動
version Docker Compose のバージョン情報の表示
Docker Compose の実行バイナリがdocker-compose [-f <引数>...] [オプション][コマンド] [引数...]
です。
これを使って Docker コンテナー内の複数サービスを生成、管理することができます。
-f
利用による(複数)Compose ファイルパスの指定
-f
フラグを利用して Compose 設定ファイルの場所を指定します。
複数 Compose ファイルの指定
-f
フラグを複数用いることで複数の設定ファイルを指定することができます。
複数ファイルを指定した場合、Compose はそれを 1 つの設定にまとめます。
まとめる際には、指定されたファイル順に行われます。
後から指定されたファイルは、前の設定に追加または上書きされます。
たとえば以下のようにコマンドラインから入力したとします。
$ 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 ファイルを複数利用する場合は、ファイル内で用いるパスはすべて、-f
を使って指定する最初の設定ファイルからの相対パスとします。
この基準となるベースパスは--project-directory
オプションを使ってオーバーライドすることもできます。
-f
に対してファイル名として -
(ダッシュ)を指定すると、設定を標準入力から読み込むことになります。
標準入力での設定内容のパスは、すべてカレントワーキングディレクトリからの相対パスを指定します。
-f
フラグはオプションです。
コマンドラインにこのフラグを指定しなかった場合、
docker-compose.override.yml
ファイルに設定されている内容は
docker-compose.yml
の内容を上書きするか、つけ加えられて適用されます。
1 つの Compose ファイルのパスを指定
-f
フラグを利用すると、カレントディレクトリではない場所にある Compose ファイルを指定することができます。
これはコマンドラインから与えますが、シェル内あるいは環境ファイル内から環境変数 COMPOSE_FILE
をセットすることでも与えることができます。
コマンドラインから-f
オプションを利用する例として、Compose Rails サンプル を利用しているとします。
そしてsandbox/rails
というディレクトリにdocker-compose.yml
があるとします。
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_NAME を参照してください。
Use --profile
to specify one or more active profiles
docker-compose --profile frontend up
を実行すると、プロファイルfrontend
を持ったサービスと、このプロファイルを持たないサービスが起動されます。
またプロファイルは複数指定することもできます。
たとえばdocker-compose --profile frontend --profile debug up
を実行すると、プロファイルfrontend
とdebug
が有効になります。
Compose でのプロファイル利用 や 環境変数COMPOSE_PROFILES
も参照してください。
環境変数の設定
-f
や-p
フラグといったdocker-compose
のさまざまなオプションに対しては、環境変数を利用することができます。
たとえば環境変数 COMPOSE_FILE は-f
フラグに関連づいています。
また環境変数 COMPOSE_PROJECT_NAME は-p
フラグに関連づいています。
また環境変数の中には環境ファイル において設定できるものもあります。