도커는 애플리케이션을 컨테이너화하여 배포하고 실행할 수 있는 플랫폼입니다. 도커 컴포즈는 도커를 사용하여 멀티 컨테이너 애플리케이션을 관리하는 데에 도움이 되는 도구입니다.
도커 컴포즈란?
- 도커 컴포즈는 YAML 파일로 정의된 서비스, 네트워크 및 볼륨을 사용하여 멀티 컨테이너 애플리케이션을 정의하고 실행하는 도구입니다.
- 도커 컴포즈를 사용하면 개발 및 프로덕션 환경에서 애플리케이션을 쉽게 배포, 확장 및 관리할 수 있습니다.
도커 컴포즈 설치하기
도커 컴포즈를 사용하기 위해 먼저 설치해야 합니다. 다음은 도커 컴포즈를 설치하는 간단한 예입니다.
pip install docker-compose
도커 컴포즈 예제
도커 컴포즈를 사용하여 멀티 컨테이너 애플리케이션을 관리하는 예제를 살펴보겠습니다.
YAML 파일 작성하기
먼저, 도커 컴포즈로 관리할 서비스, 네트워크 및 볼륨을 정의하기 위해 YAML 파일을 작성합니다. 예를 들어, 아래와 같은 docker-compose.yml
파일을 작성할 수 있습니다.
version: '3'
services:
web:
build: .
ports:
- "8000:8000"
volumes:
- .:/code
depends_on:
- db
db:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=mysecretpassword
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
위의 예제에서는 web
와 db
라는 두 개의 서비스를 정의하고 있습니다. web
서비스는 현재 디렉토리의 소스 코드를 컨테이너 내부의 /code
디렉토리에 마운트하고, 8000
포트로 외부와 통신할 수 있도록 설정되어 있습니다. db
서비스는 MySQL 5.7 이미지를 사용하며, root 패스워드를 mysecretpassword
로 설정하고, 데이터는 db_data
라는 볼륨에 저장됩니다.
애플리케이션 실행하기
YAML 파일을 작성한 후, 다음 명령을 실행하여 애플리케이션을 실행합니다.
docker-compose up
이 명령은 컴포즈 파일을 기반으로 서비스를 빌드하고 컨테이너를 실행합니다. 서비스 간의 의존성도 자동으로 관리되므로, web
서비스가 db
서비스가 실행되기 전에 실행되는 등의 기능을 자동으로 처리할 수 있습니다.
애플리케이션 관리하기
도커 컴포즈를 사용하여 멀티 컨테이너 애플리케이션을 쉽게 관리할 수 있습니다. 예를 들어, 다음 명령들로 애플리케이션을 관리할 수 있습니다.
docker-compose up -d
: 애플리케이션을 백그라운드에서 실행합니다.docker-compose down
: 애플리케이션을 종료하고 관련된 모든 컨테이너, 네트워크 및 볼륨을 삭제합니다.docker-compose ps
: 실행 중인 서비스 목록을 확인합니다.docker-compose logs
: 로그를 확인합니다.
결론
도커 컴포즈를 활용하면 멀티 컨테이너 애플리케이션을 쉽게 관리할 수 있습니다. YAML 파일로 애플리케이션 정의를 작성하고, 몇 가지 간단한 명령으로 애플리케이션을 실행 및 관리할 수 있습니다. 도커 컴포즈는 개발 및 프로덕션 환경에서 애플리케이션의 배포, 확장 및 관리를 용이하게 해주는 강력한 도구입니다.
더 많은 도커 컴포즈 사용법과 실제 예제를 살펴보려면 도커 공식 문서를 참고하시기 바랍니다. Happy coding!