csct3434
[도커 공식문서 학습] 7. 도커 핵심 개념 정리 - 컴포즈 본문
Docker Compose란?
Docker Compose는 여러 개의 컨테이너로 이루어진 애플리케이션을 쉽게 정의하고 실행할 수 있도록 해주는 도구입니다. 하나의 컨테이너만 실행하는 간단한 애플리케이션은 docker run 명령어로 쉽게 실행할 수 있지만, 데이터베이스, 메시지 큐, 캐시 등 여러 개의 컨테이너를 함께 실행해야 하는 경우 설정이 복잡해질 수 있습니다.
Compose를 사용하면 모든 컨테이너와 그 설정을 하나의 compose.yaml 파일에 정의할 수 있으며, 단 한 줄의 명령어로 실행할 수 있습니다.
Dockerfile vs. Docker Compose
- Dockerfile: 컨테이너 이미지를 빌드하는 방법을 정의한 명령어 파일
- Docker Compose: 여러 개의 컨테이너를 정의하고 실행하는 방법을 정의한 파일
Docker Compose 파일은 종종 Dockerfile을 참조하여 필요한 컨테이너 이미지를 빌드하고 실행합니다.
실습: To-Do List 애플리케이션 실행하기
Docker Compose를 활용하여 간단한 To-Do List 애플리케이션을 실행해 보겠습니다. 이 애플리케이션은 Node.js로 개발되었으며 MySQL 데이터베이스를 사용합니다.
1. 애플리케이션 다운로드
먼저 샘플 애플리케이션을 클론합니다.
git clone https://github.com/dockersamples/todo-list-app
cd todo-list-app
2. compose.yaml 파일 살펴보기
프로젝트 디렉터리 안에는 compose.yaml 파일이 있으며, 이 파일에는 애플리케이션을 구성하는 서비스들의 설정이 포함되어 있습니다. 주요 내용은 다음과 같습니다.
services:
app:
build: .
ports:
- "3000:3000"
depends_on:
- mysql
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: todolist
volumes:
- todo-mysql-data:/var/lib/mysql
volumes:
todo-mysql-data:
이 파일에서는 Node.js 애플리케이션과 MySQL 데이터베이스를 실행하며, MySQL 데이터를 저장하기 위한 볼륨을 정의하고 있습니다.
3. 애플리케이션 실행
아래 명령어를 실행하여 애플리케이션을 실행합니다.
docker compose up -d --build
이 명령어를 실행하면 다음과 같은 작업이 수행됩니다.
[+] Running 5/5
✔ app 3 layers [⣿⣿⣿] 0B/0B Pulled 7.1s
✔ e6f4e57cc59e Download complete 0.9s
✔ df998480d81d Download complete 1.0s
✔ 31e174fedd23 Download complete 2.5s
✔ 43c47a581c29 Download complete 2.0s
[+] Running 4/4
⠸ Network todo-list-app_default Created 0.3s
⠸ Volume "todo-list-app_todo-mysql-data" Created 0.3s
✔ Container todo-list-app-app-1 Started 0.3s
✔ Container todo-list-app-mysql-1 Started 0.3s
- 애플리케이션에 필요한 컨테이너 이미지 다운로드 및 빌드
- 내부 네트워크 생성
- 데이터베이스 볼륨 생성
- 컨테이너 실행
브라우저에서 http://localhost:3000에 접속하여 애플리케이션이 정상적으로 실행되는지 확인할 수 있습니다.
4. 실행 중인 컨테이너 확인
docker ps
위 명령어를 사용하면 실행 중인 컨테이너 목록을 확인할 수 있습니다.
5. 애플리케이션 종료 및 정리
애플리케이션을 종료하고 모든 리소스를 정리하려면 다음 명령어를 실행합니다.
docker compose down
만약 데이터까지 삭제하려면 --volumes 옵션을 추가합니다.
docker compose down --volumes
정리
이번 글에서는 Docker Compose를 사용하여 다중 컨테이너 애플리케이션을 쉽게 실행하고 관리하는 방법을 알아보았습니다. Docker Compose를 활용하면 복잡한 컨테이너 설정을 간소화하고 재현성을 높일 수 있습니다.
원문
https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-docker-compose/
What is Docker Compose?
What is Docker Compose?
docs.docker.com
'Docker' 카테고리의 다른 글
[도커 공식문서 학습] 8. 이미지 빌드 - 이미지 레이어 이해하기 (0) | 2025.03.31 |
---|---|
[도커 공식문서 학습] 6. 도커 핵심 개념 정리 - 레지스트리 (0) | 2025.03.30 |
[도커 공식문서 학습] 5. 도커 핵심 개념 정리 - 이미지 (0) | 2025.03.30 |
[도커 공식문서 학습] 4. 도커 핵심 개념 정리 - 컨테이너 (0) | 2025.03.27 |
[도커 공식문서 학습] 3. 첫 번째 이미지 빌드 및 푸시 (0) | 2025.03.26 |