【ツール活用|初心者向け】【初心者必見】Docker Composeで複数のコンテナを一括管理!開発環境を劇的に効率化しよう

1. 導入:なぜDocker Composeが必要なのか?

開発の現場では、Webアプリだけでなく、データベース(MySQLやPostgreSQL)やキャッシュサーバー(Redis)など、複数のプログラムを組み合わせて動かすことが一般的です。これらを一つずつ手動で起動し、ネットワーク設定を行うのは非常に手間がかかり、ミスも起きやすいものです。そこで役立つのが「Docker Compose」です。これを使えば、複雑なシステム構成をたった一つのファイルで定義し、コマンド一つで一括管理できるようになります。

2. 基礎知識:Docker Composeの仕組み

Docker Composeは、複数のコンテナを連携させて動かすためのツールです。
docker-compose.yml:コンテナの構成情報(イメージ、ポート、ネットワークなど)を記述する設定ファイルです。
docker compose up -d:設定ファイルを読み込み、すべてのコンテナをバックグラウンドで一括起動するコマンドです。
depends_on:コンテナ間の起動順序を制御する設定です。例えば「DBが起動してからWebアプリを動かす」といった依存関係を解決できます。

3. 実装:docker-compose.ymlの書き方

まずはプロジェクト用のフォルダを作成し、その中に`docker-compose.yml`という名前でファイルを作成します。以下のサンプルコードは、Webサーバー(Nginx)とデータベース(MySQL)を同時に立ち上げる構成例です。

4. サンプルプログラム

以下のコードを`docker-compose.yml`として保存してください。

version: ‘3.8’
services:
# Webサーバーの設定
web:
image: nginx:latest
ports:

  • “8080:80” # ローカルの8080番ポートをコンテナの80番に転送

depends_on:

  • db # dbサービスが先に起動するのを待つ

# データベースの設定
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root # DBのパスワード設定
volumes:

  • db-data:/var/lib/mysql # データを永続化するためのボリューム

データを保存する場所を定義
volumes:
db-data:

起動するには、ターミナルでファイルがある場所へ移動し、`docker compose up -d`を実行してください。これだけで環境が構築されます。

5. 応用・注意点:現場で役立つアドバイス

データの永続化を忘れずに:コンテナを削除してもデータが消えないよう、上記のサンプルのように`volumes`を使ってローカルのディスクと同期させるのが鉄則です。
環境変数の管理:パスワードなどの機密情報を`docker-compose.yml`に直接書くのは避けましょう。`.env`ファイルを作成して、そこに記述し、`env_file`オプションで読み込むのがセキュアな開発の第一歩です。
動作確認:コンテナが正常に動いているかは`docker compose ps`でいつでも確認できます。エラーが発生した場合は`docker compose logs`でログを確認する癖をつけると、トラブルシューティングが格段に早くなります。

まずはこの構成を試して、自分の開発環境を「コマンド一つで立ち上がる」状態にしてみてください。これだけで、開発の生産性が大きく向上しますよ!

コメント

タイトルとURLをコピーしました