Docker와 Docker Compose는 컨테이너 기반 애플리케이션을 관리하는 데 사용되는 도구이지만, 둘 사이에는 중요한 차이점이 있습니다.
역할: Docker는 컨테이너를 만들고 관리하는 도구입니다. 애플리케이션과 그 종속성을 하나의 독립적인 환경에서 실행할 수 있도록 합니다.
사용 시점: Docker는 단일 컨테이너를 실행하고 관리할 때 사용됩니다. 예를 들어, 하나의 애플리케이션(예: Spring, MySQL)만을 컨테이너화해서 관리할 때 Docker 명령어를 직접 사용합니다.
명령어 예시:
docker rundocker stopdocker build예시: MySQL 컨테이너 실행
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root_password -d mysql:8.0
역할: Docker Compose는 여러 개의 Docker 컨테이너를 동시에 정의하고 실행할 수 있는 도구입니다. 복잡한 애플리케이션이 여러 컨테이너로 구성된 경우, Docker Compose를 사용해 쉽게 관리할 수 있습니다.
사용 시점: 다중 컨테이너 환경(예: 백엔드, 프론트엔드, 데이터베이스 등 여러 개의 서비스를 연동할 때)에서 사용합니다. docker-compose.yml 파일을 통해 각 컨테이너의 설정을 미리 정의하고, 한 번에 실행하거나 중지할 수 있습니다.
명령어 예시:
docker-compose updocker-compose downdocker-compose build예시: docker-compose.yml 파일을 작성한 후 여러 컨테이너를 실행
docker-compose up
| 구분 | Docker | Docker Compose |
|---|---|---|
| 용도 | 단일 컨테이너 실행 및 관리 | 여러 컨테이너(서비스) 간 연동 및 동시에 실행 |
| 사용 환경 | 주로 단일 애플리케이션/서비스 | 복잡한 다중 컨테이너 환경 (Microservices) |
| 설정 방법 | 명령어로 직접 설정 (docker run) | docker-compose.yml 파일에 설정 작성 |
| 명령어 | docker run, docker stop 등 | docker-compose up, docker-compose down 등 |