Docker Compose 사용법: Docker 설치, compose 작성, up/down, 로그, 첫 Web+DB 스택

Compose로 Web+Postgres 스택을 up/down/logs로 관리한다.

노트북에서 Web과 PostgreSQL을 함께 돌리되 호스트 패키지 충돌은 피하고 싶을 때, Docker Compose가 docker-compose.yml로 멀티 컨테이너를 정의하고 한 CLI로 up/down/로그를 다룹니다.

Docker Compose 설치 docker-compose.yml up down 로그 Web 데이터베이스 검색者는 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·백업·이미지 고정 필요.

회의 시작