4.1 コマンド docker compose up
コマンド docker compose up は Docker Compose の主要なコマンドで、compose.yaml ファイルで定義されたマルチコンテナアプリケーションを起動することができます。このコマンドは構成で指定されたすべてのサービスを自動的に作成し、起動し、ネットワークを設定し、ボリュームをマウントします。このレクチャーでは、コマンド docker compose up の使用方法、その主なパラメータ、およびベストプラクティスについて詳しく説明します。
コマンド docker compose up の主な機能
- コンテナの作成と起動: コマンド
docker compose upは、compose.yamlファイルのservicesセクションに指定されたすべてのコンテナを作成して起動します。 - ネットワークとボリュームの設定: Docker Compose は構成で指定されたネットワークとボリュームを自動的に作成します。
- サービスの並列起動: すべてのサービスが並列に起動されるため、マルチコンテナアプリケーションの起動プロセスが速くなります。
- ログのモニタリング: コマンドはすべての起動したコンテナのログをリアルタイムで表示し、状態を監視したり問題を迅速に特定したりできます。
コマンド docker compose up の構文
docker compose up [options] [SERVICE...]
説明:
-
[options]: コマンドの動作を設定するための追加パラメータ (例:--detach,--build,--scale)。 -
[SERVICE...]: (オプション) 起動する必要があるサービスのリスト。指定されない場合は、すべてのサービスが起動されます。
4.2 docker compose up の例
docker compose up コマンドの使用例:
1. 全てのサービスを起動する
ファイル compose.yaml に定義されている全てのサービスを起動する:
docker compose up
2. 特定のサービスを起動
特定のサービス、例えば web を起動する:
docker compose up web
3. バックグラウンドで起動
全てのサービスをバックグラウンドで起動するには、オプション -d(detached mode)を使用してください:
docker compose up -d
このオプションを使用すると、コマンドはコンテナが起動した直後に終了し、それらはバックグラウンドで稼働するようになります。
4.3 コマンド docker compose up のパラメータ
docker compose up の便利なパラメータ:
1. パラメータ --build
このパラメータは、コンテナを起動する前に Docker Compose にイメージを再ビルドさせる。ソースコードや Dockerfile に変更を加えた場合に便利だよ。
docker compose up --build
2. パラメータ --force-recreate
パラメータ --force-recreate は、コンフィグが変更されていなくても Docker Compose にコンテナを再作成させる。
docker compose up --force-recreate
3. パラメータ --no-recreate
パラメータ --no-recreate は、既に存在しているコンテナを再作成しないようにする。たとえコンフィグが変更されていても。
docker compose up --no-recreate
4. パラメータ --remove-orphans
このパラメータは、現在の compose.yaml ファイルに定義されていないけど、以前の Docker Compose の実行で作成されたコンテナを削除する。
docker compose up --remove-orphans
5. パラメータ -V, --renew-anon-volumes
これらのパラメータは、匿名ボリュームを再利用するのではなく再作成するよう Docker Compose に指示する。
docker compose up -V
4.4 サンプルとおすすめ
コマンドdocker compose upの異なるオプションを使用したサンプル:
サンプル 1: イメージを再ビルドしてアプリケーションを起動する
この例ではコンテナを起動する前にイメージを再ビルドします。これにより、ソースコードやDockerfileに変更を加えた場合に役立ちます。
docker compose up --build
サンプル 2: バックグラウンドで再作成して起動する
この例では、バックグラウンドでコンテナを起動し、設定が変更されていなくても再作成します。
docker compose up -d --force-recreate
サンプル 3: 特定のサービスを不要なコンテナを削除して起動する
この例では、サービスwebのみを起動し、現在のcompose.yamlファイル内で定義されていないコンテナを削除します。
docker compose up web --remove-orphans
実践的なおすすめ
1. .envファイルの使用
.envファイルを使用して、compose.yamlで使用される環境変数を定義できます。これにより、設定の管理が容易になり、さまざまな環境でのデプロイを簡単にします。
2. ログとモニタリング
コマンドdocker compose upを使用してコンテナを起動すると、すべてのログがコンソールに出力されます。これにより、サービスの状態を追跡し、問題に迅速に対応できます。詳細なモニタリングには、コマンドdocker compose logsやdocker compose psを使用してください。
3. ビルドとデプロイの自動化
コマンドdocker compose upを自動化スクリプトやCI/CDパイプラインに統合することで、マルチコンテナアプリケーションのビルドとデプロイのプロセスを自動化できます。たとえば、JenkinsやGitHub Actionsを設定して、コードを更新するたびに自動的にビルド、デプロイ、およびdocker compose upを実行することができます。
GO TO FULL VERSION