시스템 개발 및 관리/DocKer 기본 및 활용
Docker Compose란?
Data Jun
2025. 4. 21. 20:43
여러 개의 Docker 컨테이너를 정의하고 한 번에 실행/관리할 수 있게 해주는 도구
예를 들어:
- GitLab은 단일 컨테이너만으로는 동작하지 않고,
- GitLab 서버
- DB(PostgreSQL)
- Redis 등 여러 컨테이너가 필요한 경우가 많아.
→ 이걸 한 줄로 다루기 위해 사용하는 게 Docker Compose
왜 사용하는가?
해당 코드 해석 (docker-compose.yml)
services:
gitlab: # 서비스 이름
image: gitlab/gitlab-ee:<version>-ee.0 # 사용할 GitLab Docker 이미지
container_name: gitlab # 컨테이너 이름
restart: always # 컨테이너 자동 재시작
hostname: 'gitlab.example.com' # 도메인명(내부 DNS용)
environment:
GITLAB_OMNIBUS_CONFIG: |
# 추가 설정 가능 (여기에 GitLab 설정)
external_url 'https://gitlab.example.com'
ports:
- '80:80' # HTTP
- '443:443' # HTTPS
- '22:22' # SSH (Git over SSH 접근용)
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
shm_size: '256m' # 공유 메모리 크기 설정 (성능 개선 목적)
핵심 요약
- 이 파일을 통해 GitLab을 Docker 환경에 쉽게 설치 가능
- docker-compose up -d만 입력하면 GitLab이 자동으로 실행됨
- external_url, 포트, 볼륨 등을 통해 설정과 데이터 유지가 가능함
- 여러 설정을 한 곳에 관리하므로 유지보수가 쉬움
결론
Docker Compose는 여러 컨테이너 기반 서비스를 정의하고 실행하는 YAML 기반 도구
GitLab처럼 복잡한 애플리케이션을 쉽고 반복 가능하게 배포할 수 있도록 도와줌