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

【Docker基礎】Docker Composeを実行してみる

Docker Composeを実行してみる

 これまで Docker Compose の定義ファイル(docker-compose.yml)を作る方法や書式を学んできました。いよいよ実際にコマンドを使って コンテナの作成・起動・停止・削除 を一括管理してみましょう。ここでは WordPress と MySQL のコンテナを同時に扱う例をもとに、Docker Compose の主要コマンドを解説しながら、実行までの流れを紹介します。

1.Docker Compose の操作コマンド

  1. docker compose up
    ・定義ファイル(docker-compose.yml)の内容に従い、コンテナ・ボリューム・ネットワークなどを一括で「作成&起動」
    ・例: docker compose up -d でバックグラウンド実行
  2. docker compose down
    ・作成したコンテナとネットワークを「停止&削除」
    ・ボリュームとイメージはデフォルトで削除しない(オプションで削除可)
  3. docker compose stop
    ・コンテナのみを「停止」する(削除はしない)

 Compose は docker compose ~ 形式のコマンドで操作します(従来の docker-compose コマンドから移行中)。

2.具体的なコマンド例

docker compose up

docker compose -f <定義ファイルのパス> up -d
  • -f: 定義ファイルのパスを指定(カレントディレクトリに docker-compose.yml があるなら省略可)
  • -d: バックグラウンドモードで実行

よく使うオプション

オプション内容
-dバックグラウンドで実行
--no-colorログ出力を白黒表示
--force-recreateイメージや設定に変更がなくてもコンテナを再作成
--no-deps依存するサービスを起動せずにコンテナ単体だけ起動
--abort-on-container-exitいずれかのコンテナが停止したら、すべてのコンテナを停止

docker compose down

docker compose -f <定義ファイルのパス> down
  • コンテナとネットワークを停止して削除
  • -f: 定義ファイルのパスを指定(カレントディレクトリに docker-compose.yml があるなら省略可)
  • ボリュームやイメージは削除しない。

よく使うオプション

オプション内容
--rmi 種類コンテナで使っていたイメージを削除(all / local
-v, --volumes定義ファイルで管理しているボリュームも削除
--remove-orphans定義ファイルに書いていない不要なコンテナも削除

docker compose stop

docker compose -f <定義ファイルのパス> stop
  • コンテナを単に停止するだけ(ネットワークやコンテナの削除は行わない)
  • -f: 定義ファイルのパスを指定(カレントディレクトリに docker-compose.yml があるなら省略可)

3.その他の主なコマンド

コマンド内容
createコンテナを作成する(起動はしない)。
restartコンテナを再起動する。
psコンテナ一覧を表示する。
pauseコンテナを一時停止する。
unpause一時停止中のコンテナを再開する。
logsコンテナのログを出力
buildコンテナ用のイメージをビルド(Dockerfile 使用時)
pullコンテナ用のイメージをダウンロード
rm停止中のコンテナを削除(Compose管理のもの)
exec実行中のコンテナに対しコマンドを実行
run新たなコンテナを起動してコマンドを実行

4.Compose で作成したコンテナのみ操作できる点に注意

docker composeCompose 定義ファイルで作ったコンテナ を操作対象とします。
 docker container run(=docker run)コマンドで作成したコンテナは別管理なので、Compose は把握しておらず、docker compose stop などで操作できません。

5.[ 手順 ] Docker Compose を使って WordPress + MySQL を起動

1.作業ディレクトリへ移動

PS C:\Users\joeac> cd C:\Users\joeac\Desktop\docker
PS C:\Users\joeac\Desktop\docker> cd wordpress
PS C:\Users\joeac\Desktop\docker\wordpress>

2.定義ファイル(docker-compose.yml)を確認

WordPress コンテナ & MySQL コンテナの設定が YAML で書かれているかを確認します。

PS C:\Users\joeac\Desktop\docker\wordpress> code docker-compose.yml

3.docker compose up -d

WordPress + MySQL コンテナが一括で起動します。

docker compose up -d

4.ブラウザ確認

http://localhost:8080/ を開き、WordPress の初期ページが表示されるかを確認します。

5.停止・削除

コンテナとネットワークを停止して削除(ボリュームやイメージは残る)します。

docker compose down

6.イメージやボリュームも削除したい場合

 イメージとボリュームはdownコマンドで削除されないので、必要に応じて手動で削除します。DockerDesktopから削除すると楽です。以下に削除するコマンドを示しておきます。

docker image rm <イメージ>
docker volume rm <ボリューム>

まとめ

  • docker compose up で、定義ファイルに書かれたコンテナやネットワークを一括で作成・起動
  • docker compose down で、それらを一括停止・削除
  • Compose が管理するコンテナのみ操作可能docker container run で作ったものは対象外)
  • WordPress+MySQL のような複数コンテナ構成を扱う際、定義ファイル1つでカンタン再現できるので便利

 これで Docker Compose を使った基本的な一連の流れ、ファイル作成・up・確認・downを理解できたはずです。今回で「Docker基礎」の学習は終了となりますが、さらなる学習を希望する場合は「Docker入門」や「Kubernetes入門」へ進んでみてください。