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 기준.
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·백업·이미지 고정 필요.