본문으로 건너뛰기
배포와 운영 기초집LESSON 15

Docker Compose로 웹·API 개발 환경 구성 이해하기

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

15강. Docker Compose로 웹·API 개발 환경 구성 이해하기

1. 이번 강의에서 해결할 문제

여러 컨테이너를 긴 docker run 명령으로 관리하면 포트·환경 변수·네트워크 설정이 흩어집니다. 서비스 구성을 파일로 표현하되 비밀과 운영 배포로 오해하지 않습니다.

2. 학습 목표

3. 핵심 개념

Compose는 여러 컨테이너의 이미지·build·포트·환경·볼륨·네트워크를 YAML로 정의합니다. 각 컨테이너는 한 책임을 갖는 것이 기본입니다. 이 과정은 site 서비스를 로컬에서만 실행하고 FastAPI는 기존 api 폴더가 있는 학습자만 api profile로 선택합니다. Compose는 운영 오케스트레이션이나 무료 호스팅을 자동 제공하지 않습니다.

Docker Compose 공식 개념을 기준으로 합니다.

4. 단계별 실습

1. 파일 편집

실행 위치: 저장소 루트의 학습용 브랜치

실행 전 확인: 8000·8080 포트가 비어 있고 api 폴더는 선택 사항임을 확인합니다.

대상: compose.local.yaml 예시

파일 편집
services:
site:
build:
context: .
dockerfile: Dockerfile.local
ports:
- "127.0.0.1:8080:80"

api:
profiles: ["api"]
build: ./api
env_file:
- ./api/.env
ports:
- "127.0.0.1:8000:8000"

예상 결과: site는 기본 서비스, api는 명시적으로 profile을 켤 때만 선택되는 구성이 됩니다.

2. PowerShell

실행 위치: 저장소 루트

실행 전 확인: api/.env가 Git에서 제외되고 실제 API profile은 실행하지 않습니다.

대상: Compose 구성과 로컬 site 서비스

PowerShell
docker compose --file compose.local.yaml config --services
docker compose --file compose.local.yaml up --build site
# 확인 후 Ctrl+C로 정상 중단합니다.
docker compose --file compose.local.yaml ps

예상 결과: 구성 서비스가 표시되고 site가 127.0.0.1:8080에서 로컬로 실행됩니다.

5. 배포·운영 흐름이 동작하는 이유

Compose는 서비스 이름 기반 네트워크와 선언된 포트·환경을 한 파일에서 재현합니다. localhost 바인딩은 실습 포트가 외부 인터페이스에 불필요하게 공개되는 범위를 줄이고 profile은 선택 서비스를 기본 실행에서 제외합니다.

6. 자주 하는 실수와 안전한 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

Docker Compose로 웹·API 개발 환경 구성 이해하기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1다음 중 “Docker Compose로 웹·API 개발 환경 구성 이해하기”의 핵심 요약을 실제 상황에 맞게 적용한 것은 무엇인가요?
  2. 문제 2“Docker Compose로 웹·API 개발 환경 구성 이해하기”의 작업 기준으로 ‘Compose가 곧 운영 배포라고 생각’을 진단하거나 바로잡은 선택은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

15강. Docker Compose로 웹·API 개발 환경 구성 이해하기 미완료 상태