「設定 - Docker Compose」の版間の差分
43行目: | 43行目: | ||
<code>docker-compose up -d</code>コマンドは、Docker Compose v2では動作しない。<br> | <code>docker-compose up -d</code>コマンドは、Docker Compose v2では動作しない。<br> | ||
YAMLファイルを実行するには、<code>docker compose -d</code>コマンドで実行する必要がある。<br> | YAMLファイルを実行するには、<code>docker compose -d</code>コマンドで実行する必要がある。<br> | ||
<br> | |||
Composeコマンドは、docker-compose.ymlファイルが存在するディレクトリで行う。<br> | |||
<br> | |||
==== サービスイメージの確認 ==== | |||
docker compose images | |||
<br> | |||
==== サービスイメージの作成 ==== | |||
サービスイメージのビルドを実行する。<br> | |||
YAMLファイルに<code>image:</code>が記述されている場合、そのイメージ名がローカルに存在しなければ、リモートからプルする。<br> | |||
YAMLファイルに<code>image:</code>が記述されていない場合、<code>build</code>に記述されているパスのDockerfileを使用して、コンテナイメージを構築する。<br> | |||
docker compose build | |||
<br> | |||
==== リモートからサービスイメージを取得 ==== | |||
リモートからコンテナイメージを取得する。<br> | |||
docker compose pull | |||
<br> | |||
==== サービスの確認 ==== | |||
docker compose ps | |||
<br> | |||
==== サービスの作成 ==== | |||
構築されたサービスイメージからサービスを作成する。<br> | |||
また、作成直後のサービスは停止している。<br> | |||
docker compose create | |||
<br> | |||
==== サービスの実行 ==== | |||
サービスを作成して起動する。<br> | |||
<code>-d</code>オプションを付加することにより、バックグラウンドで実行することができる。<br> | |||
また、<code>--build</code>オプションを付加することにより、起動前にイメージを構築することもできる。<br> | |||
docker compose up | |||
# バックグラウンドで実行する場合 | |||
docker compose up -d | |||
# サービスイメージを構築してサービスを実行する場合 | |||
docker compose up -d --build | |||
<br> | |||
==== サービスの起動 ==== | |||
停止中のサービスを起動する。<br> | |||
docker compose start | |||
<br> | |||
==== サービス再起動 ==== | |||
サービスを再起動する。<br> | |||
docker compose restart | |||
<br> | |||
==== サービスの停止 ==== | |||
起動中のサービスを停止する。<br> | |||
docker compose stop | |||
<br> | |||
==== サービスの削除 ==== | |||
docker-compose.ymlファイルに記述されているサービスからコンテナを停止して、そのコンテナとネットワークを削除する。<br> | |||
<code>--rmi all</code>オプションを付加することにより、サービスイメージも削除することができる。<br> | |||
docker compose down | |||
# サービスイメージの停止および削除 | |||
docker compose down --rmi all | |||
<br> | |||
==== サービスの強制削除 ==== | |||
停止中のコンテナを削除する。<br> | |||
docker compose rm | |||
<br> | |||
==== サービスの強制消去 ==== | |||
サービスを強制停止する。<br> | |||
docker compose kill | |||
<br> | |||
==== コマンドの実行 ==== | |||
引数で指定したサービスのコンテナ内でコマンドを実行する。<br> | |||
docker compose run <サービス名> <コマンド> <引数 1> <引数 2> <引数...> | |||
# 例: docker-compose.yml内のdbを強制的にpullして、dbおよびwebを実行する | |||
docker compose run db web new . --force --database=mysql | |||
<br> | |||
==== サービスの設定の確認 ==== | |||
docker-compose.ymlで記述されている設定を表示する。<br> | |||
docker compose config | |||
<br> | |||
==== サービスログの確認 ==== | |||
サービスのログを表示する。<br> | |||
docker compose logs | |||
<br><br> | <br><br> | ||
2024年2月4日 (日) 10:26時点における版
概要
Docker Composeは、マルチコンテナアプリケーションを定義して実行するためのツールである。
効率的な開発とデプロイを可能にすることができる。
Composeは、アプリケーションスタック全体の制御を簡素化して、サービス、ネットワーク、ボリュームを単一のYAMLファイルで簡単に管理できる。
そして、1つのコマンドで、設定ファイルから全てのサービスを作成および起動することができる。
Composeは、本番環境、ステージング環境、開発環境、テスト環境、CIワークフロー等、あらゆる環境で動作する。
また、アプリケーションのライフサイクル全体を管理するコマンドも用意されている。
- サービスの開始、停止、再構築。
- 実行中のサービスのステータスの表示。
- 実行中のサービスのログ出力をストリームする。
- サービスに対して単発のコマンドを実行する。
Docker Composeの利点
Docker Composeを使用することにより、コンテナ化されたアプリケーションの開発、デプロイ、管理を効率化できるメリットがいくつか存在する。
- シンプルなコントロール
- Docker Composeでは、1つのYAMLファイルでマルチコンテナアプリケーションを定義および管理できる。
- これにより、様々なサービスのオーケストレーションと調整という複雑な作業が簡素化されて、アプリケーション環境の管理と複製が容易になる。
- 効率的なコラボレーション
- Docker Composeの設定ファイルは共有が簡単なため、開発者、運用チーム、その他の関係者間でのコラボレーションが容易になる。
- この協調的なアプローチは、よりスムーズなワークフロー、より迅速な問題解決、全体的な効率の向上に繋がる。
- 迅速なアプリケーション開発
- Composeは、コンテナの作成に使用した設定をキャッシュする。
- 変更されていないサービスを再起動する場合、Composeは既存のコンテナを再利用することにより、環境にすばやく変更を加えることができる。
- 異なる環境間での移植性
- Composeは、Composeファイル内の変数をサポートしている。
- これらの変数を使用して、異なる環境や異なるユーザ向けにコンポジションをカスタマイズすることができる。
- (ポート番号やバージョン等)
- 豊富なコミュニティとサポート
- Docker Composeは、活気ある活発なコミュニティの恩恵を受けている。
- これは、豊富なリソース、チュートリアル、サポートを意味しており、このコミュニティ主導のエコシステムはDocker Composeの継続的な改善に貢献し、
- ユーザが問題を効果的にトラブルシューティングできるよう支援する。
また、以下に示すような利点もある。
- 複数のDockerfileを同時に起動できる。
- ブリッジネットワークが自動作成されるため、コンテナ同士の通信が可能となる。
- インフラ構成の可視化やバージョン管理がDocker Composeで完結する。
Composeコマンド
docker-compose up -d
コマンドは、Docker Compose v2では動作しない。
YAMLファイルを実行するには、docker compose -d
コマンドで実行する必要がある。
Composeコマンドは、docker-compose.ymlファイルが存在するディレクトリで行う。
サービスイメージの確認
docker compose images
サービスイメージの作成
サービスイメージのビルドを実行する。
YAMLファイルにimage:
が記述されている場合、そのイメージ名がローカルに存在しなければ、リモートからプルする。
YAMLファイルにimage:
が記述されていない場合、build
に記述されているパスのDockerfileを使用して、コンテナイメージを構築する。
docker compose build
リモートからサービスイメージを取得
リモートからコンテナイメージを取得する。
docker compose pull
サービスの確認
docker compose ps
サービスの作成
構築されたサービスイメージからサービスを作成する。
また、作成直後のサービスは停止している。
docker compose create
サービスの実行
サービスを作成して起動する。
-d
オプションを付加することにより、バックグラウンドで実行することができる。
また、--build
オプションを付加することにより、起動前にイメージを構築することもできる。
docker compose up # バックグラウンドで実行する場合 docker compose up -d # サービスイメージを構築してサービスを実行する場合 docker compose up -d --build
サービスの起動
停止中のサービスを起動する。
docker compose start
サービス再起動
サービスを再起動する。
docker compose restart
サービスの停止
起動中のサービスを停止する。
docker compose stop
サービスの削除
docker-compose.ymlファイルに記述されているサービスからコンテナを停止して、そのコンテナとネットワークを削除する。
--rmi all
オプションを付加することにより、サービスイメージも削除することができる。
docker compose down
# サービスイメージの停止および削除 docker compose down --rmi all
サービスの強制削除
停止中のコンテナを削除する。
docker compose rm
サービスの強制消去
サービスを強制停止する。
docker compose kill
コマンドの実行
引数で指定したサービスのコンテナ内でコマンドを実行する。
docker compose run <サービス名> <コマンド> <引数 1> <引数 2> <引数...> # 例: docker-compose.yml内のdbを強制的にpullして、dbおよびwebを実行する docker compose run db web new . --force --database=mysql
サービスの設定の確認
docker-compose.ymlで記述されている設定を表示する。
docker compose config
サービスログの確認
サービスのログを表示する。
docker compose logs