도커의 기초 개념을 마스터했다면 이제 실전에 적용해 볼 차례입니다. 여러 개의 컨테이너를 복잡한 옵션 없이 명령어 한 줄로 묶어서 관리해 주는 마법 같은 도구, '도커 컴포즈(Docker Compose)'의 원리와 사용법을 알아보겠습니다.
1. Docker Compose가 필요한 이유
우리가 특정 자동화 툴을 제대로 가동하려면 대개 단 하나의 프로그램만 필요한 것이 아닙니다.
- 자동화 도구(n8n) + 데이터를 저장할 데이터베이스(PostgreSQL) + 트래픽을 안내할 리버스 프록시(Nginx) 등이 한 세트로 묶여서 움직여야 합니다.
- 이를 일일이 수동으로 설치하고 연결해 주는 것은 매우 귀찮고 오류가 나기 쉽습니다.
- 도커 컴포즈는 이러한 다중 컨테이너 연결 구조를 단 하나의 텍스트 설정 파일로 기술하고 한꺼번에 제어할 수 있게 해줍니다.
2. 핵심은 docker-compose.yml 파일 하나
도커 컴포즈는 코딩이 아닌 단순한 설정 양식 파일(yml)을 작성하는 것에서 시작합니다. 파일 안에는 다음과 같은 내용을 계층 구조로 정의합니다.
- Services: 실행할 컨테이너 종류 (예: app, db 등)
- Ports: 외부와 연결할 가상 포트 번호
- Environment: 비밀번호나 서버 설정 같은 환경 변수값
- Volumes: 컨테이너가 삭제되어도 데이터가 사라지지 않도록 내 PC(호스트) 하드에 안전하게 보관할 폴더 연결 설정
3. 도커 컴포즈 기본 실행 명령어 3가지
터미널을 열고 docker-compose.yml 파일이 있는 위치에서 아래 명령어만 입력하면 가상 서버가 즉시 구축됩니다.
- docker-compose up -d: 설정된 컨테이너들을 백그라운드에서 한 번에 조용히 실행합니다.
- docker-compose down: 실행 중인 모든 관련 컨테이너를 안전하게 중지하고 네트워크를 정리합니다.
- docker-compose ps: 현재 컴포즈로 작동 중인 서비스들의 활성화 상태를 한눈에 모니터링합니다.