Docker Composeの使い方:Docker導入、compose作成、up/down、ログ、初のWeb+DBスタック
Compose を入れ、Web+Postgres スタックを up/down/logs で運用する。
ノート PC で Web と PostgreSQL を同時に動かしたいが、ホストに直接パッケージを入れたくない。Docker Compose は docker-compose.yml で複数コンテナを定義し、1 本の CLI で起動・停止・ログ確認ができます。
Docker Compose インストール docker-compose.yml up down ログ Web DB で検索する人は、Docker/Compose の導入、compose 作成、up/down、logs、Web+DB の動作確認が目的です。docs.docker.com に準拠。
Compose が向く人
フルスタック / バックエンド
API+DB をチームと同じ compose でローカル再現。
運用を学びたいエンジニア
K8s の前に up/down/logs/ps で慣れる。
ハンズオン講師
nginx+Postgres を一発起動;必要なら down -v でリセット。
Docker と Compose プラグインのインストール
- 1
macOS / Windows: Docker Desktop
Download from
https://docs.docker.com/desktop/(Docker Hub download links redirect there). Install, start Docker Desktop, wait until the engine reports running. Compose V2 ships asdocker compose. - 2
Linux: Docker Engine + compose plugin
Follow
https://docs.docker.com/engine/install/for your distro, then install the Compose plugin perhttps://docs.docker.com/compose/install/linux/(package name oftendocker-compose-plugin). - 3
Verify CLI
Run
docker --versionanddocker compose version. If only hyphenateddocker-composeexists, prefer upgrading to the plugin; legacy binary behavior differs slightly. - 4
Permissions (Linux)
Without sudo, add your user to the
dockergroup per official post-install steps, then log out/in. Do not chmod/var/run/docker.sockto world-writable.
最初の docker-compose.yml(Web + PostgreSQL)
Create a project folder with docker-compose.yml (filename also accepted: compose.yaml). Example: nginx on port 8080 and PostgreSQL 16 with a named volume:
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: devpass
POSTGRES_DB: appdb
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:Put a simple html/index.html on the host. Never commit real passwords; use .env for local secrets and add .env to .gitignore (see Docker docs on env files).
起動・停止・ログ
| Command | Action | When |
|---|---|---|
docker compose up -d | Start detached | First bring-up |
docker compose ps | Status / ports | Confirm mapping |
docker compose logs -f web | Follow logs | Debug startup |
docker compose stop | Stop containers | Pause without removing |
docker compose down | Remove containers/network | Clean shutdown |
docker compose pull | Refresh images | Before upgrades |
Web + DB スタックの確認
- 1
HTTP
Open
http://localhost:8080— nginx should serve yourindex.html. - 2
Database
docker compose exec db psql -U app -d appdb -c '\dt'checks Postgres inside the container. - 3
Rebuild after edits
If you add a
build:section later, usedocker compose up -d --build.
Compose orchestrates containers on one Docker host; it is not a cloud substitute. Backups, TLS, and scaling live in platform-specific docs.
ローカルで動いたら、ホワイトボードや音声は wbroom ホーム から — ルーム作成と参加。
確認しておきたい点
Compose V2 と docker-compose の違いは?
現在は docker compose(V2)が標準。docker compose version で確認。
down でデータは消える?
named volume なら通常の down では残る。down -v は開発 DB リセット用。
ポートが使用中?
ports のホスト側を変更するか lsof で確認。
本番にそのまま使える?
学習用構成です。本番はシークレット・TLS・バックアップ・イメージ固定が必要。