Data Engineering/Docker

[Linux/Docker] Docker compose에 대해 알아보자

seoraroong 2024. 8. 23. 00:00

도커 컴포즈 Docker Compose

Docker Compose는 다수의 Docker 컨테이너를 관리하고 배포하기 위해 설계된 도구이다.

여러 개의 컨테이너로 구성된 애플리케이션을 쉽게 정의하고 실행할 수 있도록 도와준다.

 

 

Docker Compose의 장점

- 다중 컨테이너 애플리케이션 관리가 쉽다

Compose를 사용하면 여러 개의 컨테이너로 구성된 애플리케이션을 한 번의 명령어로 관리할 수 있다.

예를 들어 데이터베이스, 웹 서버, 캐시 서버 등을 함께 정의하고 동시에 실행할 수 있다.

 

- 일관된 개발 환경을 제공한다

Docker Compose 파일을 통해 개발, 테스트, 프로덕션 환경 모두에서 일관된 환경을 제공할 수 있다.

환경 불일치 문제를 줄일 수 있다.

 

- 빠른 배포와 복원이 가능하다

설정이 YAML 파일에 정의되어 있어, 새로운 환경에서 애플리케이션을 신속하게 배포하고 복원할 수 있다.

 

- 관리가 간편하다

docker-compose 명령어를 사용해 애플리케이션을 시작, 중지, 삭제, 업데이트할 수 있다.

 

 

Docker Compose 주요 개념

- YAML 파일을 통한 구성 정의

Docker compose는 YAML 파일을 사용해 애플리케이션의 서비스를 정의한다.

이 파일은 docker-compose.yml이라는 이름으로 보통 프로젝트의 루트 디렉토리에 위치한다.

YAML 파일에는 애플리케이션을 구성하는 모든 컨테이너, 네트워크, 볼륨 등의 설정이 포함된다.

 

- 서비스, 네트워크, 볼륨 관리

서비스 : 애플리케이션의 각 개별적인 컨테이너를 정의한다. 각 서비스는 Docker 이미지를 기반으로 하며, 포트 매핑, 환경 변수 설정, 의존성 등과 같은 설정을 포함한다.

 

네트워크 : 서비스 간의 네트워크 연결을 정의한다. Compose는 기본적으로 서비스들 간의 통신을 허용하는 네트워크를 자동으로 생성한다.

 

볼륨 : 데이터 저장소를 정의해 컨테이너 간의 데이터를 공유하거나 컨테이너의 데이터를 지속 보관할 수 있다.

 

 

Docker Compose 기본 명령어

docker-compose up
docker-compose up -d

정의된 서비스들을 실행한다.

d 플래그를 사용하면 백그라운드에서 실행된다.

 

docker-compose down
docker-compose down -v

실행 중인 컨테이너를 중지하고 삭제한다. 네트워크와 볼륨도 함께 삭제할 수 있다.

 

docker-compose build

서비스에 사용되는 이미지를 빌드한다. Dockerfile을 기반으로 이미지를 생성한다.

 

docker-compose logs
docker-compose logs -f

서비스의 로그를 출력한다. 실시간 로그 모니터링이 가능하다.

 

docker-compose exec <service> <command>
docker-compose exec web /bin/bash

실행 중인 컨테이너에 명령어를 실행한다

예를 들어, 쉘을 열 수 있다.