도커 컴포즈 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
실행 중인 컨테이너에 명령어를 실행한다
예를 들어, 쉘을 열 수 있다.
'Data Engineering > Docker' 카테고리의 다른 글
[Linux/Docker] Sinatra를 사용해보고 Ubuntu 서버에 배포해보자 (0) | 2024.08.24 |
---|---|
[Linux/Docker] Flask로 app을 만들고 Docker compose로 컨테이너화해보자 (0) | 2024.08.24 |
[Linux/Docker] Docker Compose 설치하고 WORDPRESS와 MYSQL 컨테이너를 만들어보자 (5) | 2024.08.24 |
[Linux/Docker] Docker를 설치하고 컨테이너를 실행해보자 (0) | 2024.08.23 |
[Linux/Docker] Docker는 왜 사용할까? (0) | 2024.08.23 |