🐳

Docker Composeコマンド完全ガイド|初心者向け実践解説

2024/12/07に公開

はじめに

Docker Composeは、複数のコンテナを定義し、管理するためのツールです。本記事では、実際の開発現場で頻繁に使用されるDocker Composeのコマンドを、初心者でも分かりやすく一覧にして解説します。

目次

  1. 基本的なDocker Composeコマンド
  2. 開発時に便利なコマンド
  3. 高度な使い方
  4. トラブルシューティング
  5. まとめ

1.基本的なDocker Composeコマンド

docker-compose up

サービスを起動するための最も基本的なコマンドです。

# 通常の起動
docker-compose up

# バックグラウンドで起動(デタッチモード)
docker-compose up -d

ポイント:

  • -dオプションを使うと、コンテナをバックグラウンドで起動できます
  • docker-compose.ymlに定義されたすべてのサービスを一度に起動します
  • 初回起動時はイメージのビルドも自動的に行われます

docker-compose down

起動中のコンテナを停止し、ネットワークを削除します。

# コンテナ、ネットワーク、デフォルトネットワークを削除
docker-compose down

# イメージも一緒に削除
docker-compose down --rmi all

ポイント:

  • --rmi allオプションで関連するイメージも削除できます
  • プロジェクト内のリソースをクリーンアップする際に便利です

docker-compose ps

現在起動中のコンテナの状態を確認できます。

# サービスの状態を表示
docker-compose ps

ポイント:

  • コンテナのID、名前、使用しているイメージ、ステータスが確認できます
  • 複数のサービスの状態を一覧で把握できます

2.開発時に便利なコマンド

docker-compose build

サービスのイメージを再ビルドします。

# すべてのサービスを再ビルド
docker-compose build

# 特定のサービスのみビルド
docker-compose build web

# キャッシュを使用せずにビルド
docker-compose build --no-cache

ポイント:

  • Dockerfileや依存関係に変更があった際に使用します
  • --no-cacheオプションで完全に新しいイメージを作成できます

docker-compose logs

サービスのログを表示します。

# すべてのサービスのログを表示
docker-compose logs

# 特定のサービスのログを表示
docker-compose logs web

# リアルタイムでログを表示
docker-compose logs -f web

ポイント:

  • -fオプションでリアルタイムにログを監視できます
  • デバッグ時に非常に役立ちます

docker-compose exec

起動中のコンテナ内でコマンドを実行します。

# webサービス内でbashを起動
docker-compose exec web bash

# 特定のコマンドを実行
docker-compose exec web python manage.py migrate

ポイント:

  • コンテナ内部に入って直接操作やコマンド実行が可能です
  • デバッグや設定変更に便利です

3.高度な使い方

docker-compose run

一回限りのコマンド実行に使用します。

# テストの実行
docker-compose run --rm web pytest

# 特定のサービスでコマンドを実行
docker-compose run --rm web npm install

ポイント:

  • --rmオプションで、コマンド実行後にコンテナを自動削除します
  • 開発中の依存関係インストールやテスト実行に便利です

docker-compose restart

サービスを再起動します。

# すべてのサービスを再起動
docker-compose restart

# 特定のサービスのみ再起動
docker-compose restart web

docker-compose stop

サービスを停止しますが、コンテナは削除しません。

# すべてのサービスを停止
docker-compose stop

# 特定のサービスのみ停止
docker-compose stop web

4.トラブルシューティング

よくある問題と対処法:

  1. ポートが既に使用されている場合

    • 他のプロセスが同じポートを使用していないか確認
    • docker-compose.ymlのポートマッピングを変更
  2. イメージのビルドエラー

    • docker-compose build --no-cacheで再ビルド
    • Dockerfileと依存関係を確認
  3. パーミッションエラー

    • Linuxの場合、sudoを使用するか、ユーザー権限を確認

5.まとめ

Docker Composeのコマンドは、最初は複雑に感じるかもしれませんが、実際に使ってみると非常に直感的で便利なツールであることがわかります。継続的に使用することで、これらのコマンドを自然と使いこなせるようになります。

現場のプロジェクトに組み込んで試してみることで、開発のスピードアップはもちろん、環境構築にかかる時間や手間を大幅に削減できる効果を実感できるでしょう。使い込むほどに「これなしでは回らない」と思えるようになるはずです!

Discussion