このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Docker入門】Docker Composeコマンドで操作してみる
Docker Composeは、複数のDockerコンテナを管理するためのツールであり、Docker Composeコマンドを使用してこれらのコンテナを操作します。
ここでは、Docker Composeコマンドを使って、コンテナを操作していきます。
「Docker Composeの特徴」で作成した「compose.yaml」を使用します。こちらの内容をまだ、実行していない場合は、まずは、「Docker Composeの特徴」を実行した上で、こちらのコンテンツの内容を試していってください。
ディレクトリの移動
作業ディレクトリに移動します。
・「cd desktop/docker」コマンドを実行します。
PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker>
既に作成済みの「compose.yaml」ファイルを保存している「webdb」ディレクトリに移動します。次のコマンドを実行します。
・「cd webdb」コマンドを実行します。
PS C:\Users\joeac\Desktop\docker\webdb>
「docker compose」コマンド
Docker Composeコマンドは、複数のDockerコンテナを管理するためのツールであり、以下のコマンドが提供されています。
docker compose up
「compose.yaml」の内容に基づいて、すべてのサービス用のコンテナを構築し、(再)作成し、開始し、アタッチします。通常、「docker compose up
」コマンドはデタッチモード(バックグラウンド実行)で実行され、「-d
」オプションが付加されます。サービス名を指定して起動することもできます。
・「docker compose up -d」コマンドを実行します。
PS C:\Users\joeac\Desktop\docker\webdb> docker compose up -d
[+] Running 19/19
✔ db 10 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 14.4s
✔ 9a5c778f631f Pull complete 3.9s
✔ ccc451c3fb55 Pull complete 3.0s
✔ db534de989c8 Pull complete 3.3s
✔ c1a1ab6fb3ea Pull complete 3.9s
✔ d18a374d12e6 Pull complete 3.9s
✔ 2d9f4c3e8c03 Pull complete 4.5s
✔ 4c79cbebfe62 Pull complete 5.7s
✔ b3549fdd6799 Pull complete 4.6s
✔ c08846a4ab7a Pull complete 6.6s
✔ 084bd453daf0 Pull complete 5.3s
✔ web 7 layers [⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 6.8s
✔ 8a1e25ce7c4f Pull complete 1.7s
✔ e78b137be355 Pull complete 1.9s
✔ 39fc875bd2b2 Pull complete 0.7s
✔ 035788421403 Pull complete 1.4s
✔ 87c3fb37cbf2 Pull complete 2.2s
✔ c5cdd1ce752d Pull complete 2.3s
✔ 33952c599532 Pull complete 2.6s
[+] Building 0.0s (0/0) docker:default
[+] Running 3/3
✔ Network webdb_default Created 0.0s
✔ Container webdb-web-1 Started 0.5s
✔ Container webdb-db-1 Started 0.5s
docker compose stop
すべてのサービスを停止します。サービス名を指定して停止することもできます。
・「docker compose stop」コマンドを実行します。
すべてのサービスを停止させます。
PS C:\Users\joeac\Desktop\docker\webdb> docker compose stop
[+] Stopping 2/2
✔ Container webdb-db-1 Stopped 0.0s
✔ Container webdb-web-1 Stopped 0.5s
docker compose start
既に作成済のすべてのDockerコンテナを起動します。
・「docker compose start」コマンドを実行します。
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 0.3s
docker compose restart
すべてのコンテナを再起動します。
・「docker compose restart」コマンドを実行します。
PS C:\Users\joeac\Desktop\docker\webdb> docker compose restart
[+] Restarting 2/2
✔ Container webdb-db-1 Started 0.3s
✔ Container webdb-web-1 Started 1.0s
docker compose 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 10 minutes ago Up About a minute 80/tcp
docker compose logs
すべてのサービスのログを表示します。
・「docker compose ps」コマンドを実行します。
PS C:\Users\joeac\Desktop\docker\webdb> docker compose logs
webdb-db-1 | 2024-03-31 08:15:45+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.3.0-1.el8 started.
webdb-web-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
webdb-web-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
(省略)
webdb-web-1 | 2024/03/31 08:24:52 [notice] 1#1: start worker process 39
webdb-web-1 | 2024/03/31 08:24:52 [notice] 1#1: start worker process 40
webdb-web-1 | 2024/03/31 08:24:52 [notice] 1#1: start worker process 41
docker compose down
「docker compose up
」で起動したコンテナの停止と削除を同時に行います。ネットワークも削除されます。
・「docker compose down」コマンドを実行します。
PS C:\Users\joeac\Desktop\docker\webdb> docker compose down
[+] Running 3/3
✔ Container webdb-web-1 Removed 0.4s
✔ Container webdb-db-1 Removed 0.0s
✔ Network webdb_default Removed 0.2s
PS C:\Users\joeac\Desktop\docker\webdb>
最後にDockerオブジェクトの削除
ここで、作成したDockerオブジェクトをすべて削除しておきます。
・「docker system prune -a」コマンドを実行します。
Are you sure you want to continue? [y/N] の問いには「y」と入力します。
PS C:\Users\joeac\Desktop\docker\webdb> 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
Deleted Images:
untagged: mysql:latest
untagged: mysql@sha256:4552fcc5d3cdb8cdee76ee25cce28bf60b0eb3ce93d25ba3bfff7a66bfdcdee8
deleted: sha256:82563e0cbf18162af685bff03debc195b851c327c31163fd211c0144d3c1baae
deleted: sha256:1ec6a25d9d0e9f5b6b9de54bd25a7abadf87e462e4a8f7bcdd2e51465514d1a0
deleted: sha256:94db37d32ebfad636d2c0c57e92f333416c8df0328eca57c9acaf4ee17f79146
deleted: sha256:841f234a9a856b8a729e98ff390dd0e41ca8f08b63dd361597dd1b809047e63f
deleted: sha256:4780dae798526f95105c00ebe09cc47591b30eff4de56c86c700430ebd0348b5
deleted: sha256:64b93fdb873fcf262cc40fa492e6598b7df0b64ee02771df1aa120685b970d09
deleted: sha256:696891c1289e24722d08ab7db3f61edb32874dcc6c764d748df077370f7bbae5
deleted: sha256:26f817f40dbe49d6507930ebccae13645bbfb39ca63bf1ceaf769f7605df9b32
deleted: sha256:7f9290a30ea78acd85c216f714bb5df589531db0b559bb3cd8f17332390a55b2
deleted: sha256:b1594fddff8b8af91a2289850c56169c201baa26df4e7a98ecfeb6f669619279
deleted: sha256:18a3ada103a9229bc00b549b66ae7caa0bc0eb47e785859d8b1346a254a871d1
untagged: nginx:latest
untagged: nginx@sha256:6db391d1c0cfb30588ba0bf72ea999404f2764febf0f1f196acd5867ac7efa7e
deleted: sha256:92b11f67642b62bbb98e7e49169c346b30e20cd3c1c034d31087e46924b9312e
deleted: sha256:d9e826dbb4b3c5770fe92638baa8c6614f210d782a5d021a123fe9fa1f92c23d
deleted: sha256:2a75285e888884bed4d630896c86ecd71739c6e82669e21ad7a050f33c9ac48d
deleted: sha256:32bfe3f040358ab8f9872a63d4ddefdc68f35d991ca10a812cbac5912ae9f97b
deleted: sha256:1330486eb62ea7e96f384961b77b0fc85f5d4422e761114ef3a72e7cb89751a4
deleted: sha256:a375372209a0f2b2c697a52cce46bc41b495bf86184ae83dd5146e20c22078eb
deleted: sha256:450787ca55caa59d0288de9cf36fc6b77d1b208a77eb837ec3d25b385f99cafb
deleted: sha256:a483da8ab3e941547542718cacd3258c6c705a63e94183c837c9bc44eb608999
Total reclaimed space: 819.1MB
PS C:\Users\joeac\Desktop\docker\webdb>
すべて削除されない場合
コマンドやDocker Desktopを使って個別に削除します