728x90
반응형
docker-compose
docker-compose는 Docker에서 여러 컨테이너를 정의하고 관리하기 위한 도구이다. 복잡한 애플리케이션은 여러 서비스(예: 웹 서버, 데이터베이스, 캐시 등)로 구성되는데, docker-compose를 사용하면 이러한 서비스들을 하나의 설정 파일로 정의하고 한꺼번에 실행할 수 있다.
주요 기능 및 특징
- YAML 파일을 통한 설정
- docker-compose.yml 파일에 서비스, 네트워크, 볼륨 등을 정의하여 각 컨테이너의 설정을 관리한다.
- 멀티 컨테이너 애플리케이션 관리
- 단일 명령어로 여러 컨테이너를 빌드하고 실행할 수 있다.
- 환경 간 일관성 유지
- 개발, 테스트, 프로덕션 환경에서 동일한 설정을 사용하여 일관성을 보장한다.
- 의존성 관리
- 서비스 간의 의존성을 정의하여 실행 순서를 제어할 수 있다.
사용 방법
설치하기
Docker Compose는 Docker Desktop에 기본 포함되어 있습니다.
리눅스 등의 환경에서는 별도로 설치해야 할 수 있습니다.
docker-compose.yml 파일 작성하기
프로젝트 루트 디렉토리에 docker-compose.yml 파일을 생성합니다.
이 예시는 웹 애플리케이션과 MySQL 데이터베이스를 설정하고, 두 서비스 간의 의존성을 정의합니다.
version: '3'
services:
web:
build: .
ports:
- "8080:8080"
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
서비스 실행하기
빌드 및 실행
-d 옵션을 추가하면 백그라운드에서 실행됩니다.
docker-compose up
서비스 중지 및 제거
docker-compose down
유용한 명령어
실행 중인 컨테이너 확인
docker-compose ps
로그 확인
docker-compose logs
특정 서비스 재시작
docker-compose restart <서비스명>
docker-compose의 장점
- 복잡한 애플리케이션 관리 용이성
- 여러 서비스를 개별적으로 관리하는 번거로움을 줄여준다.
- 개발 환경 표준화
- 팀 내 개발자들이 동일한 환경에서 작업할 수 있도록 도와준다.
- 빠른 배포 및 스케일링
- 설정 파일만으로 쉽게 서비스 인스턴스를 늘리거나 줄일 수 있다.
- 환경 변수 관리
- .env 파일을 통해 민감한 정보를 관리하고 설정을 분리할 수 있다.
728x90
반응형