DevOps 환경에서 Docker Compose는 여러 개의 컨테이너를 손쉽게 관리하고 배포할 수 있는 강력한 도구입니다. 이 글에서는 Docker Compose의 기본 사용법과 실제 환경 세팅 예제를 통해 DevOps 프로세스를 어떻게 간소화할 수 있는지 살펴보겠습니다.
Docker Compose란?
Docker Compose는 YAML 파일을 이용하여 여러 개의 Docker 컨테이너를 정의하고 실행할 수 있게 해주는 도구입니다. 이를 통해 복잡한 애플리케이션을 쉽게 구성하고, 여러 환경에서 일관된 실행 환경을 보장할 수 있습니다.
Docker Compose 설치
Docker Compose를 사용하기 위해서는 먼저 Docker가 설치되어 있어야 합니다. Docker가 이미 설치되어 있다면 아래의 명령어로 Docker Compose를 설치할 수 있습니다.
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose
# 설치 확인
docker-compose --version
Docker Compose 파일 작성
Docker Compose 파일은 일반적으로 docker-compose.yml이라는 이름으로 작성됩니다. 이 파일에는 서비스, 네트워크, 볼륨 등의 설정이 포함됩니다. 아래는 간단한 웹 애플리케이션을 위한 docker-compose.yml 파일의 예제입니다.
version: '3.8' # Compose 파일의 버전
services:
web: # 웹 서버 서비스
image: nginx:latest # 사용할 이미지
ports:
- "8080:80" # 호스트와 컨테이너의 포트 매핑
volumes:
- ./html:/usr/share/nginx/html # 호스트의 html 디렉토리를 컨테이너와 공유
db: # 데이터베이스 서비스
image: mysql:5.7 # 사용할 MySQL 이미지
environment:
MYSQL_ROOT_PASSWORD: root # MySQL root 비밀번호 설정
MYSQL_DATABASE: mydb # 생성할 데이터베이스 이름
volumes:
- db_data:/var/lib/mysql # 데이터 지속성을 위한 볼륨 설정
volumes:
db_data: # 데이터베이스 볼륨 명시
위의 설정은 Nginx 웹 서버와 MySQL 데이터베이스를 포함하는 간단한 애플리케이션을 정의합니다. Nginx는 8080 포트를 통해 접근할 수 있으며, MySQL의 root 비밀번호와 초기 데이터베이스 이름도 설정하였습니다. 또한, MySQL 데이터는 Docker 볼륨을 사용하여 지속적으로 유지됩니다.
Docker Compose로 환경 실행
Docker Compose 파일을 작성한 후, 아래의 명령어로 환경을 실행할 수 있습니다.
docker-compose up -d
위 명령어는 -d 플래그를 사용하여 백그라운드에서 컨테이너를 실행합니다. 실행이 완료되면 브라우저에서 http://localhost:8080에 접속하여 Nginx 웹 서버가 정상적으로 작동하는지 확인할 수 있습니다.
서비스 관리
Docker Compose에서는 여러 가지 명령어를 통해 서비스를 관리할 수 있습니다. 주요 명령어는 다음과 같습니다.
- 중지: 모든 서비스를 중지하려면 아래 명령어를 사용합니다.
docker-compose down
docker-compose logs
docker-compose ps
마무리
Docker Compose는 여러 컨테이너를 간편하게 관리하고, 개발 및 배포 프로세스를 간소화하는 데 매우 유용한 도구입니다. 본 글에서는 기본적인 설치 방법과 YAML 파일 설정, 서비스를 실행하고 관리하는 방법까지 알아보았습니다. 이러한 방법을 통해 복잡한 애플리케이션도 손쉽게 관리할 수 있으니, 실제 프로젝트에 적극 활용해 보시기 바랍니다.