🐳
Docker Composeコマンド完全ガイド|初心者向け実践解説
はじめに
Docker Composeは、複数のコンテナを定義し、管理するためのツールです。本記事では、実際の開発現場で頻繁に使用されるDocker Composeのコマンドを、初心者でも分かりやすく一覧にして解説します。
目次
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.トラブルシューティング
よくある問題と対処法:
-
ポートが既に使用されている場合
- 他のプロセスが同じポートを使用していないか確認
-
docker-compose.yml
のポートマッピングを変更
-
イメージのビルドエラー
-
docker-compose build --no-cache
で再ビルド - Dockerfileと依存関係を確認
-
-
パーミッションエラー
- Linuxの場合、
sudo
を使用するか、ユーザー権限を確認
- Linuxの場合、
5.まとめ
Docker Composeのコマンドは、最初は複雑に感じるかもしれませんが、実際に使ってみると非常に直感的で便利なツールであることがわかります。継続的に使用することで、これらのコマンドを自然と使いこなせるようになります。
現場のプロジェクトに組み込んで試してみることで、開発のスピードアップはもちろん、環境構築にかかる時間や手間を大幅に削減できる効果を実感できるでしょう。使い込むほどに「これなしでは回らない」と思えるようになるはずです!
Discussion