
Docker超入門:docker container run の複雑さを解消する!Docker Composeでの管理方法
Dockerを使い始めると、最初は docker container run コマンドを使ってコンテナを起動することが多いですよね。シンプルなコンテナならこれで十分ですが、ちょっと複雑なサービス(例えば MariaDB など)を立ち上げようとすると、コマンドがどんどん長くなって大変…。タイプミスもしやすく、再利用もしづらいのが悩みどころです。
docker container run コマンドの複雑さ
たとえば、MariaDBを起動する場合はこんな感じのコマンドになります。
docker container run --name mariadb-container -dit -v sample-data:/var/mysql \
-e MARIADB_ROOT_PASSWORD=rootpass -e MARIADB_DATABASE=sample-db \
-e MARIADB_USER=sample-user -e MARIADB_PASSWORD=password mariadb:latest一行に収めるとかなり長いですね。これだけオプションが多いと「どこでタイプミスした?」と悩むこともあります。
各オプションの意味
| オプション/パラメータ | 説明 |
|---|---|
| docker container run | Dockerコンテナを実行するコマンド |
| --name mariadb-container | コンテナ名を指定 |
| -dit | -d: バックグラウンド実行-i: 標準入力を有効化-t: 疑似TTYを割り当て |
| -v sample-data:/var/mysql | ボリュームをマウント(データ永続化用) |
| -e MARIADB_ROOT_PASSWORD=rootpass | MariaDBのrootパスワードを設定 |
| -e MARIADB_DATABASE=sample-db | 作成するデータベース名 |
| -e MARIADB_USER=sample-user | ユーザ名 |
| -e MARIADB_PASSWORD=password | ユーザのパスワード |
| mariadb:latest | 使用するMariaDBイメージ |
このように、パスワードやボリュームの設定を全部書き連ねるので、どうしても長いコマンドになります。
Docker Composeで管理する
そこで登場するのが Docker Compose。
これは YAMLファイルにコンテナの設定をまとめて書いて、シンプルなコマンドで一括管理できる仕組み です。
MariaDBコンテナをComposeで書くと、次のようになります。
version: '3.8'
services:
mariadb:
image: mariadb:latest
container_name: mariadb-container
volumes:
- sample-data:/var/mysql
environment:
- MARIADB_ROOT_PASSWORD=rootpass
- MARIADB_DATABASE=sample-db
- MARIADB_USER=sample-user
- MARIADB_PASSWORD=password
volumes:
sample-data:これを docker-compose.yaml という名前で保存して、以下のコマンドを実行するだけです。
docker-compose up -dYAMLファイルの意味
| 要素 | 説明 |
|---|---|
| version | Docker Composeファイルのバージョン。ここでは 3.8 を指定 |
| services | 定義するサービス群(複数のコンテナをまとめられる) |
| mariadb | サービス名(任意) |
| image | 使用するDockerイメージ。ここではmariadb:latest |
| container_name | コンテナの名前を指定 |
| volumes | データ永続化のためのボリュームマウント |
| environment | 環境変数をまとめて設定できる |
こうして見ると、複雑な docker container run のコマンドを一発で分かりやすく整理できているのが分かりますね。
まとめ
docker container runでもコンテナは起動できるけど、複雑なアプリだとコマンドが長くなりすぎる。- Docker Composeを使えば、設定をYAMLファイルにまとめられて見やすい。
- 再利用やチーム開発にも向いていて、「docker-compose up」 だけで一括起動できる。
「手書きの長い呪文コマンド」から解放されて、快適にコンテナ管理ができるのがComposeの強みです。
