Docker Composeで開発環境構築|PostgreSQL・MySQL・Redis・メール対応

2025/09/21に公開

開発中「PostgreSQLの接続設定どう書くんだっけ?」「Redisのコマンド何だっけ?」と毎回調べていませんか?Docker Composeの設定は覚えきれないものです。

本記事は開発時にコピペして即座に使えるDocker Compose設定集です。データベース、キャッシュ、メールサーバーなど、開発でよく使うサービスを管理画面付きですぐ起動できる設定をまとめました。

ブックマークしておけば、必要な時にコピペするだけ。もう設定方法を調べる必要はありません。

Note

動作確認環境:

  • Docker version 28.0.4, build b8034c0
  • Docker Compose version v2.34.0-desktop.1
Tip

Dockerコマンドのみで単体サービスを起動したい場合は、Dockerコマンド集の記事をご参照ください。

データベース系サービス

PostgreSQL

最も使用頻度が高いリレーショナルデータベースの一つです。僕も日々の開発で一番使っています。

"

Docker Hub:

docker-compose.yaml
services: postgres: image: postgres container_name: postgres-dev environment: POSTGRES_PASSWORD: password POSTGRES_DB: mydb ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data pgadmin: image: dpage/pgadmin4 container_name: pgadmin-dev environment: PGADMIN_DEFAULT_EMAIL: user@domain.com PGADMIN_DEFAULT_PASSWORD: SuperSecret ports: - "8080:80" depends_on: - postgres volumes: postgres-data:

接続情報:

  • PostgreSQL: localhost:5432
  • ユーザー: postgres
  • パスワード: password
  • データベース: mydb
  • pgAdmin: http://localhost:8080
    • メール: user@domain.com
    • パスワード: SuperSecret
Note

pgAdminで接続する際は、ホスト名にpostgres(サービス名)を使用してください。

MySQL

もう一つの主要なリレーショナルデータベースです。

"

Docker Hub

docker-compose.yaml
services: mysql: image: mysql container_name: mysql-dev environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: mydb ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql adminer: image: adminer container_name: adminer-dev ports: - "8080:8080" depends_on: - mysql volumes: mysql-data:

接続情報:

  • MySQL: localhost:3306
  • ユーザー: root
  • パスワード: password
  • データベース: mydb
  • Adminer: http://localhost:8080
Note

Adminerで接続する際は、サーバー名にmysql(サービス名)を使用してください。

MongoDB

NoSQLデータベースの代表格です。

"

Docker Hub:

docker-compose.yaml
services: mongo: image: mongo container_name: mongo-dev environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: password ports: - "27017:27017" volumes: - mongo-data:/data/db mongo-express: image: mongo-express container_name: mongo-express-dev environment: ME_CONFIG_MONGODB_ADMINUSERNAME: admin ME_CONFIG_MONGODB_ADMINPASSWORD: password ME_CONFIG_MONGODB_URL: mongodb://admin:password@mongo:27017/ ME_CONFIG_BASICAUTH: false ports: - "8081:8081" depends_on: - mongo volumes: mongo-data:

接続情報:

  • MongoDB: localhost:27017
  • 接続URL: mongodb://admin:password@localhost:27017/
  • 管理画面: http://localhost:8081

キャッシュ・セッションストレージ

Redis

高速なインメモリデータストアです。パフォーマンスが命のアプリケーションでは必須です。

"

Docker Hub:

docker-compose.yaml
services: redis: image: redis container_name: redis-dev command: redis-server --save 60 1 --loglevel warning ports: - "6379:6379" volumes: - redis-data:/data redis-commander: image: rediscommander/redis-commander container_name: redis-commander-dev environment: REDIS_HOSTS: local:redis:6379 ports: - "8081:8081" depends_on: - redis volumes: redis-data:

接続情報:

  • Redis: localhost:6379
  • 管理画面: http://localhost:8081

Memcached

シンプルで高速なメモリキャッシュシステムです。Redisよりも軽量でシンプルな用途に最適です。

"

Docker Hub: https://hub.docker.com/_/memcached (2025年9月21日時点: 1.6.39)

docker-compose.yaml
services: memcached: image: memcached container_name: memcached-dev command: - --conn-limit=1024 - --memory-limit=64 - --threads=4 ports: - "11211:11211"

接続情報:

  • Memcached: localhost:11211

メッセージキューシステム

RabbitMQ

信頼性の高いメッセージキューシステムです。

"

Docker Hub: https://hub.docker.com/_/rabbitmq (2025年9月21日時点: 4.1.4, 3.13.7)

docker-compose.yaml
services: rabbitmq: image: rabbitmq:3-management container_name: rabbitmq-dev hostname: my-rabbit environment: RABBITMQ_DEFAULT_USER: admin RABBITMQ_DEFAULT_PASS: password ports: - "5672:5672" - "15672:15672" volumes: - rabbitmq-data:/var/lib/rabbitmq volumes: rabbitmq-data:

接続情報:

  • AMQP接続: localhost:5672
  • 管理画面: http://localhost:15672
  • ユーザー: admin
  • パスワード: password
Tip

管理画面がとても便利で、メッセージの流れを視覚的に確認できます。

開発ツール・ユーティリティ

MailHog

開発時のメール送信をテストできるSMTPサーバーです。

"

Docker Hub: https://hub.docker.com/r/mailhog/mailhog (2025年9月15日時点: v1.0.1)

docker-compose.yaml
services: mailhog: image: mailhog/mailhog container_name: mailhog-dev ports: - "1025:1025" - "8025:8025"

接続情報:

  • SMTP: localhost:1025
  • Web UI: http://localhost:8025

MinIO

AWS S3互換のローカルオブジェクトストレージです。

"

Docker Hub: https://hub.docker.com/r/minio/minio (2025年9月21日時点: RELEASE.2025-09-07T16-13-09Z-cpuv1)

docker-compose.yaml
services: minio: image: minio/minio container_name: minio-dev command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: admin MINIO_ROOT_PASSWORD: password ports: - "9000:9000" - "9001:9001" volumes: - minio-data:/data volumes: minio-data:

接続情報:

  • API: http://localhost:9000
  • 管理画面: http://localhost:9001
  • ユーザー: admin
  • パスワード: password
  • 環境変数未設定の場合のログイン情報
    • ユーザー: minioadmin
    • パスワード: minioadmin

サービスの管理

サービスの起動

ターミナル
# バックグラウンドで起動 docker compose up -d # 特定のサービスのみ起動 docker compose up -d postgres pgadmin

サービスの停止・削除

ターミナル
# サービス停止(再起動可能) docker compose stop # 特定のサービスのみ停止 docker compose stop postgres # サービス停止とコンテナ削除 docker compose down # 完全削除(停止・コンテナ削除・ボリューム削除) docker compose down -v

サービスの再起動

ターミナル
# すべてのサービスを再起動 docker compose restart # 特定のサービスのみ再起動 docker compose restart postgres

サービスの状態確認

ターミナル
# 実行中のサービス確認 docker compose ps # ログ確認 docker compose logs # 特定サービスのログ docker compose logs postgres # リアルタイムログ監視 docker compose logs -f

まとめ

開発環境で頻繁に使用するデータベース、キャッシュ、メッセージキュー、開発ツールなどのDocker Compose設定をコピペで即座に利用できる形でまとめました。

各サービスには管理画面を組み合わせており、データの確認やデバッグが容易になっています。設定方法を調べる時間を削減し、本来の開発作業に集中できるよう、ぜひこの設定集をブックマークしてご活用ください。

必要な時にコピー、貼り付け、起動。これだけで開発環境が整います。


参考リンク

この記事はいかがでしたか?

もしこの記事が参考になりましたら、
高評価をいただけると大変嬉しいです!

皆様からの応援が励みになります。ありがとうございます! ✨