このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Docker超入門:Docker Composeコマンドを使ってみよう!実際にコンテナを操作して学ぶ

Docker Composeコマンドを使ってみよう!実際にコンテナを操作して学ぶ

Docker Composeを使えば、複数のコンテナを“まとめて操作”できるのが大きな魅力です。
 この記事では、実際にComposeコマンドを動かしながら、コンテナの起動・停止・削除といった基本操作を身につけていきましょう!

作業前のクリーンアップ

まずは環境をスッキリさせておきましょう。
古いコンテナや使わないイメージが残っていると、挙動が分かりづらくなります。

💡実行コマンド

docker system prune -a

 このコマンドは、停止中のコンテナや不要なネットワーク・イメージ・キャッシュを一括削除してくれます。

実行すると次のような確認メッセージが出ます。

PS C:\Users\joeac> docker system prune -a
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y

「y」を入力すれば削除スタートです。
ボリュームが残っている場合は、必要に応じて削除しておきましょう。

作業ディレクトリに移動しよう

次に、Docker Composeファイル(compose.yaml)を保存しているフォルダに移動します。

cd desktop/docker
cd webdb

実行結果

PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> cd webdb
PS C:\Users\joeac\Desktop\docker\webdb>

これで作業ディレクトリが「webdb」になりました。
ここに、以前作成した compose.yaml があるはずです。

Docker Composeコマンドで操作してみる

Docker Composeは、複数コンテナをまとめて起動・停止・削除できるツールです。
実際にコマンドを動かしながら見ていきましょう。

➀コンテナを起動する(up)

docker compose up -d

このコマンドで、compose.yaml に書かれたサービス(例:web・db)を一括起動します。
-d はデタッチモード(バックグラウンド実行)のオプションです。

実行結果

PS C:\Users\joeac\Desktop\docker\webdb> docker compose up -d
(省略)
[+] Running 3/3
 ✔ Network webdb_default  Created
 ✔ Container webdb-web-1  Started
 ✔ Container webdb-db-1   Started

✨ これで2つのコンテナ(webとdb)が起動しました!

➁コンテナを停止する(stop)

docker compose stop

すべてのコンテナを停止します。
特定のサービス名(例:nginx)を指定して停止することもできます。

オプション説明
なしすべてのサービスを停止
サービス名指定特定のサービスのみ停止

実行結果

PS C:\Users\joeac\Desktop\docker\webdb> docker compose stop
time="2025-10-05T23:18:07+09:00" level=warning msg="C:\\Users\\joeac\\Desktop\\docker\\webdb\\compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion"
[+] Stopping 2/2
 ✔ Container webdb-web-1  Stopped                                                        0.4s
 ✔ Container webdb-db-1   Stopped

➂コンテナを再起動する(restart)

docker compose restart

すべてのサービスを一度停止して再起動します。
設定を変更したときや動作が不安定なときに便利です。

実行結果

PS C:\Users\joeac\Desktop\docker\webdb> docker compose restart
time="2025-10-05T23:18:23+09:00" level=warning msg="C:\\Users\\joeac\\Desktop\\docker\\webdb\\compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion"
[+] Restarting 2/2
 ✔ Container webdb-db-1   Started                                                        0.3s
 ✔ Container webdb-web-1  Started

➃停止中のコンテナを再開する(start)

docker compose start

一度停止させたコンテナを再び起動します。
コンテナを再作成するわけではなく、既存のものをそのまま再利用します。

実行結果

まず、docker compose stop コマンドで、すべてのコンテナを停止させておきます。

PS C:\Users\joeac\Desktop\docker\webdb> docker compose stop
(省略)
[+] Stopping 2/2
 ✔ Container webdb-web-1  Stopped                                                        0.4s
 ✔ Container webdb-db-1   Stopped                                                        0.0s

PS C:\Users\joeac\Desktop\docker\webdb> docker compose start
(省略)
[+] Running 2/2
 ✔ Container webdb-db-1   Started                                                        0.5s
 ✔ Container webdb-web-1  Started  

➄実行中のコンテナ一覧を確認する(ps)

docker compose ps

現在のコンテナ状態を一覧で確認できます。

実行結果

PS C:\Users\joeac\Desktop\docker\webdb> docker compose ps
(省略)
NAME          IMAGE          COMMAND                   SERVICE   CREATED          STATUS              PORTS
webdb-web-1   nginx:latest   "/docker-entrypoint.…"   web       14 minutes ago   Up About a minute   80/tcp

Composeでは「コンテナ名=プロジェクト名+サービス名+番号」という形式になります。

➅ログを確認する(logs)

docker compose logs

各サービスのログをまとめて確認できます。
サービス名を指定すれば、個別のログも表示できます。

コマンド説明
docker compose logsすべてのサービスのログを表示
docker compose logs webwebサービスだけのログを表示

実行結果

PS C:\Users\joeac\Desktop\docker\webdb> docker compose logs
(省略)
web-1  | 2025/10/05 14:16:32 [notice] 1#1: start worker processes
web-1  | 2025/10/05 14:16:32 [notice] 1#1: start worker process 29
web-1  | 2025/10/05 14:16:32 [notice] 1#1: start worker process 30
web-1  | 2025/10/05 14:16:32 [notice] 1#1: start worker process 31
(省略)

⑦コンテナとネットワークを削除する(down)

docker compose down

「up」で作成したコンテナ・ネットワークをまとめて削除します。

実行結果

PS C:\Users\joeac\Desktop\docker\webdb> docker compose down
(省略)
[+] Running 3/3
 ✔ Container webdb-web-1  Removed                                                                                       0.6s
 ✔ Container webdb-db-1   Removed                                                                                       0.2s
 ✔ Network webdb_default  Removed  

これで作業完了!
Composeの世界は、ほんとにシンプルで効率的です✨

コマンドと主なオプションまとめ

コマンド主なオプション説明
docker compose up-dコンテナをバックグラウンドで起動
docker compose stopなしコンテナを停止
docker compose startなし停止中のコンテナを再起動
docker compose restartなしすべてのコンテナを再起動
docker compose ps-aコンテナ一覧を表示(停止中含む)
docker compose logs-fログをリアルタイムで追跡
docker compose down--volumesコンテナ・ネットワーク・ボリューム削除

まとめ

Docker Composeを使うと、コンテナの操作が一気にラクになります。

💡 ポイントまとめ

  • up:一括起動
  • stop/start/restart:運用操作
  • ps/logs:状態とログの確認
  • down:まとめて削除

単一コンテナの操作は「docker container」でもできますが、
複数コンテナを扱う開発では Composeのほうが圧倒的に便利!

 次は、このCompose環境を活かして「永続化ボリューム」や「ネットワーク連携」に挑戦してみましょう! 🚀