複数コンテナを一括管理!「docker-compose up」で簡単に環境構築する方法を解説

開発環境を整えるとき、複数のコンテナ(Webサーバー、DB、キャッシュサーバーなど)を手動で立ち上げるのはとても手間です。そんな時に活躍するのが「Docker Compose」です。特にその中でも使いこなしたいコマンドが「docker-compose up」。
このコマンドを使えば、複数のコンテナを一括で起動・連携させることができ、開発の効率を飛躍的に向上させることが可能です。
本記事では、「docker-compose up」の基本的な使い方から、便利なオプション、トラブル時の対処法まで、初めての方にもわかりやすく丁寧に解説していきます。


Docker Composeとは?

まず前提として、Docker Composeとは何かを理解しておきましょう。

Docker Composeは、複数のコンテナを一括管理するためのツールです。たとえば、Webアプリケーションの開発においては以下のような構成になることが一般的です。

  • NginxやApacheなどのWebサーバー
  • Node.jsやPythonなどのアプリケーションサーバー
  • MySQLやPostgreSQLなどのデータベース

このように複数のコンテナを協調して動作させる場合、個別に起動・設定するのは非常に面倒です。Docker Composeを使えば、これらの情報を一つのdocker-compose.ymlファイルにまとめて管理できます。


docker-compose upとは?その役割と基本動作

docker-compose upは、Composeファイルで定義されたすべてのサービス(コンテナ)を一括で起動するためのコマンドです。

docker-compose up

このコマンドを実行すると以下の処理が自動で行われます:

  1. docker-compose.yml ファイルを読み込む
  2. 必要なDockerイメージをビルドまたは取得する
  3. 各サービスを定義通りに起動する
  4. それぞれのログを表示する

非常にシンプルですが、開発環境を一発で立ち上げられるため、作業の効率化に貢献します。


docker-compose.ymlの基本構成と例

以下は、Webアプリケーションとデータベースを構成する簡単な例です。

version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password

このようなdocker-compose.ymlファイルを作成して、同じディレクトリでdocker-compose upを実行すると、NginxとMySQLの2つのコンテナが同時に起動します。


よく使うオプションまとめ

docker-compose upはシンプルなコマンドですが、オプションを組み合わせることでさらに便利に使えます。

-d(バックグラウンド実行)

docker-compose up -d

通常は標準出力にログが表示され続けますが、-dオプションを使うとバックグラウンドで実行されます。サーバーとして常駐させたいときに便利です。

–build(イメージを再ビルド)

docker-compose up --build

コンテナの構成が変更された場合、このオプションを使うことで再ビルドを強制できます。

–force-recreate(コンテナを強制的に再作成)

docker-compose up --force-recreate

既存のコンテナがあっても強制的に新しく作り直します。動作が不安定なときに使用されることがあります。


トラブル対策:エラーが出たらどうする?

docker-compose upでうまく起動できないときの対処法も押さえておきましょう。

1. ポート競合の確認

エラーメッセージに「port is already allocated」などが出た場合、同じポート番号を使って他のサービスが起動している可能性があります。使用ポートを変更するか、既存のプロセスを停止してください。

2. イメージの取得失敗

pull access deniedなどのエラーが出たら、指定したイメージが存在しないか、非公開の可能性があります。イメージ名を再確認し、認証が必要ならDocker Hubのログインを行いましょう。

docker login

3. 環境変数が不足している

環境変数(MYSQL_ROOT_PASSWORDなど)が不足している場合も起動に失敗します。.envファイルを用意して変数を定義するのもおすすめです。


docker-compose upの停止と削除

起動したコンテナを停止するには以下のコマンドを使います。

docker-compose down

このコマンドはすべてのコンテナを停止し、ネットワークやボリュームなども削除します。設定変更のあとに一度クリーンにしたい場合にも便利です。

もしボリュームを保持したい場合は、--volumesオプションを外して使うことも可能です。


便利な活用例:開発と本番でファイルを切り替える

docker-composeは、開発環境と本番環境で設定を切り替える運用も可能です。たとえば以下のように複数のYAMLファイルを使い分けます。

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

このように複数ファイルを合成して、必要な構成だけ上書きする柔軟な使い方もできます。


まとめ

docker-compose upは、複数のコンテナを一括で起動・管理できる非常に便利なコマンドです。開発環境を構築するとき、毎回個別にコンテナを起動する必要がなくなり、時間の短縮と構成の再現性を高めることができます。

よく使うオプションやトラブル対処法を押さえておけば、初めての方でも安心して使いこなすことができます。開発現場での効率化のためにも、ぜひ習得しておきたいコマンドの一つです。

タイトルとURLをコピーしました