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 に準拠。

Docker / Compose 導入compose ファイル作成up · logs · 初回スタック

Compose が向く人

01

フルスタック / バックエンド

API+DB をチームと同じ compose でローカル再現。

02

運用を学びたいエンジニア

K8s の前に up/down/logs/ps で慣れる。

03

ハンズオン講師

nginx+Postgres を一発起動;必要なら down -v でリセット。

Docker と Compose プラグインのインストール

  1. 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 as docker compose.

  2. 2

    Linux: Docker Engine + compose plugin

    Follow https://docs.docker.com/engine/install/ for your distro, then install the Compose plugin per https://docs.docker.com/compose/install/linux/ (package name often docker-compose-plugin).

  3. 3

    Verify CLI

    Run docker --version and docker compose version. If only hyphenated docker-compose exists, prefer upgrading to the plugin; legacy binary behavior differs slightly.

  4. 4

    Permissions (Linux)

    Without sudo, add your user to the docker group per official post-install steps, then log out/in. Do not chmod /var/run/docker.sock to 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).

起動・停止・ログ

CommandActionWhen
docker compose up -dStart detachedFirst bring-up
docker compose psStatus / portsConfirm mapping
docker compose logs -f webFollow logsDebug startup
docker compose stopStop containersPause without removing
docker compose downRemove containers/networkClean shutdown
docker compose pullRefresh imagesBefore upgrades

Web + DB スタックの確認

  1. 1

    HTTP

    Open http://localhost:8080 — nginx should serve your index.html.

  2. 2

    Database

    docker compose exec db psql -U app -d appdb -c '\dt' checks Postgres inside the container.

  3. 3

    Rebuild after edits

    If you add a build: section later, use docker 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・バックアップ・イメージ固定が必要。

会議を始める