docker-compose와 docker compose의 명확한 차이점 🐳
가장 핵심적인 차이는 **docker compose (띄어쓰기)**가 최신 버전(V2)의 명령어이며, **docker-compose (하이픈)**는 더 이상 사용되지 않는 이전 버전(V1)이라는 점입니다.
쉽게 말해, 이제는 docker compose를 사용하는 것이 표준입니다.
주요 차이점 비교
구분 | docker compose (V2, 최신) | docker-compose (V1, 구버전) |
형태 | Docker CLI의 일부 (플러그인 방식) | 별도로 설치해야 하는 독립적인 스크립트 |
언어 | Go 언어로 재작성됨 | Python으로 작성됨 |
설치 | 최신 Docker Desktop에 기본적으로 포함 | pip 등을 통해 별도 설치 필요 |
명령어 | docker compose up | docker-compose up |
지원 | 지속적인 업데이트 및 기술 지원 | 2023년 7월부로 지원 중단 |
성능 | Go 언어로 재작성되어 성능 및 Docker와의 통합성 향상 | 상대적으로 오래된 기술 |
Sheets로 내보내기
왜 바뀌었나요? 🤔
docker-compose는 원래 파이썬(Python)으로 만들어진 별개의 프로젝트였습니다. 하지만 Docker가 발전하면서 여러 컨테이너를 더 효율적으로 관리할 필요성이 커졌고, Docker는 compose 기능을 Go 언어로 새로 작성하여 Docker 엔진에 완전히 통합시켰습니다.
이 새로운 버전이 docker compose (V2)이며, Docker의 하위 명령어(sub-command)처럼 동작하게 되면서 하이픈(-) 대신 띄어쓰기를 사용하게 된 것입니다. 이는 docker ps, docker images와 같이 다른 Docker 명령어와 일관성을 맞추기 위함입니다.
이제 무엇을 사용해야 할까요?
결론적으로, 무조건 docker compose (띄어쓰기)를 사용해야 합니다.
- 새로운 프로젝트: 당연히 docker compose를 사용합니다.
- 기존 프로젝트: 기존에 docker-compose로 작성된 스크립트나 YAML 파일이 있더라도 대부분 호환이 됩니다. 하지만 앞으로의 유지보수와 최신 기능을 활용하기 위해 docker compose 명령어로 점차 전환하는 것이 좋습니다.
최신 버전의 Docker를 사용하고 있다면 이미 docker compose가 설치되어 있으므로 별도의 조치 없이 바로 사용하실 수 있습니다.
'클라우드 & DevOps > DevOps ∕ Docker' 카테고리의 다른 글
[Docker] GitLab의 root 계정 비밀번호를 초기화하는 방법 (1) | 2025.08.18 |
---|---|
[Docker] postgresql 컨테이너 접속하여 쿼리하기(psql) (2) | 2025.08.06 |
[Docker] docker compose로 생성한 리소스 완전 삭제하기 (0) | 2025.08.04 |
[Tip] Rancher Desktop에서 Hot Reload를 활성화 시키는 방법(feat. virtiofs) (2) | 2025.08.04 |
[Docker ] Docker 실습 (0) | 2022.05.04 |
최근댓글