🔍 Docker Compose 플러그인이란?
Docker Compose 플러그인(docker compose
)은 기존 독립형 docker-compose
도구를 대체하는 Docker 엔진의 통합 플러그인입니다. 2021년 Docker v20.10부터 도입되어 docker
CLI와 완벽하게 통합되었습니다. 기존 docker-compose
(Python 기반)와 달리 Go 언어로 개발되어 성능과 호환성이 크게 향상되었습니다.
# 기존 vs 새로운 명령어 비교
docker-compose up -d # 레거시 (독립형)
docker compose up -d # 모던 (플러그인)
🌟 등장 배경: 왜 플러그인인가?
- 성능 향상: Go 네이티브 컴파일로 실행 속도 2~3배 빨라짐
- 통합 관리:
docker
CLI와 동일한 환경 제공 - 버전 호환성: Docker 엔진 버전과 자동 동기화
- 확장성: V2 컴포즈 파일(
.yaml
) 완벽 지원 - 보안 강화: 루트 권한 불필요 (기존은 sudo 필요했음)
⚙️ 설치 가이드 (Linux 기준)
1. Docker 엔진 업데이트 (v20.10+)
sudo apt update && sudo apt upgrade docker-ce
2. Compose 플러그인 설치
sudo apt install docker-compose-plugin
3. 설치 확인
docker compose version
# 출력 예: Docker Compose version v2.23.0
> 💡 Windows/macOS: Docker Desktop 최신 버전 설치 시 자동 포함
🚀 핵심 사용법 & 예제
기본 명령어 구조
docker compose [COMMAND] [OPTIONS]
1. 서비스 실행 (예: Nginx + MySQL)
# docker-compose.yaml
services:
web:
image: nginx:alpine
ports:
- "80:80"
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: secret
docker compose up -d # 백그라운드 실행
2. 환경별 설정 관리
# 개발용
docker compose -f docker-compose.dev.yaml up
# 프로덕션용
docker compose -f docker-compose.prod.yaml up
3. 실시간 로그 확인
docker compose logs -f web # web 서비스 로그 스트리밍
🆚 플러그인 vs 독립형 차이점
기능 | 플러그인 (docker compose ) |
독립형 (docker-compose ) |
---|---|---|
실행 속도 | ⚡️ 2배 이상 빠름 | 상대적 느림 |
CLI 통합 | ✅ docker 와 완전 통합 |
❌ 별도 실행 |
권한 요구 | 🛡️ root 불필요 | ⚠️ 대부분 sudo 필요 |
컴포즈 파일 버전 | 📄 v2/v3 완벽 지원 | v1/v2 지원 |
확장 기능 | 🔌 플러그인 시스템 지원 | ❌ 미지원 |
🔥 고급 활용 팁
1. 프로파일로 서비스 그룹화
services:
frontend:
profiles: ["front"]
image: nginx
analytics:
profiles: ["monitoring"]
image: prometheus
# 실행시: docker compose --profile front up
2. 의존성 컨트롤 향상
services:
app:
depends_on:
db:
condition: service_healthy
db:
healthcheck:
test: ["CMD", "mysqladmin", "ping"]
3. 로컬 빌드 + 캐싱
docker compose build --no-cache # 캐시 무시 재빌드
⚠️ 주의사항 & 마이그레이션
- 볼륨 네이밍 변화: 프로젝트 이름 접두사 자동 추가 (
_
) - 명령어 차이:
docker-compose
→docker compose
(대시 제거) - 버전 호환: 레거시 v1 파일 사용 시
version: "3.8"
명시 필수 - 에러 대응:
ERROR: .Illegal instruction
발생 시 Docker 업데이트
🎯 결론: 왜 플러그인을 써야 할까?
- 생산성 향상: 통합 CLI로 작업 흐름 단순화
- 퍼포먼스: 대규모 서비스 배포 시 확연한 속도 차이
- 미래 대응: Docker의 공식 로드맵에서 독립형 지원 중단 예고
- 생태계 통합: BuildKit, 스캔, 확장 플러그인과의 시너지
> 📢 2024년 현재, 모든 신규 프로젝트는 docker compose 플러그인 사용을 강력 권장합니다! 기존 프로젝트도 점진적 마이그레이션이 가능합니다.
# 한방에 마이그레이션
alias docker-compose="docker compose" # 쉘에 알리아스 추가
컨테이너 오케스트레이션의 새 시대를 Docker Compose 플러그인과 함께 시작하세요! 🐳💨