Docker Compose는 복수의 컨테이너를 효과적으로 관리할 수 있는 강력한 도구입니다.
컨테이너 기술의 발전은 소프트웨어 개발 및 배포에 큰 변화를 가져왔습니다. Docker는 이러한 변화의 중심에 있는 도구 중 하나입니다. 하지만 한 번에 하나씩 빌드하거나 구동할 수 있는 Docker와 달리, Docker Compose는 복수의 컨테이너를 한 번에 관리할 수 있어 실전 업무에서 더욱 유용합니다. 이 글에서는 Docker와 Docker Compose의 차이점, 그리고 Docker Compose를 활용한 실전 예제를 소개합니다.
Docker는 개별 컨테이너를 빌드하고 관리하는 데 탁월한 도구입니다. 그러나 컨테이너 간의 의존관계를 관리할 수 없기 때문에 여러 컨테이너를 다룰 때는 불편할 수 있습니다. 예를 들어, 데이터베이스와 웹 서버를 동시에 구동해야 하는 경우, 각 컨테이너를 따로 빌드하고 실행해야 합니다.
Docker Compose는 이러한 단점을 보완합니다. yaml 파일을 통해 여러 컨테이너를 정의하고, 명령어 하나로 전체 컨테이너를 관리할 수 있습니다. 또한, 컨테이너 간의 의존관계를 설정할 수 있어 복잡한 애플리케이션 환경을 쉽게 구축할 수 있습니다.
아래는 docker-compose.yaml 파일을 사용하여 MySQL 데이터베이스와 phpMyAdmin 관리 도구를 설정하는 예제입니다. 이 파일을 통해 두 개의 컨테이너를 정의하고, 필요한 환경 변수와 포트 설정을 한 곳에서 관리할 수 있습니다.
이 docker-compose.yaml 파일은 MySQL 데이터베이스와 phpMyAdmin을 쉽게 설정할 수 있도록 합니다. 각 컨테이너의 이미지, 포트, 환경 변수를 명확하게 정의하여 관리할 수 있습니다.
Docker Compose를 사용할 때 자주 사용하는 명령어는 다음과 같습니다. 이를 통해 컨테이너를 손쉽게 관리할 수 있습니다.
이 명령어들을 통해 전체 컨테이너를 한 번에 시작하고 중지할 수 있으며, 개별 컨테이너의 로그를 확인하고 관리할 수 있습니다.
이제 예제를 실제 실습에 사용해 보도록 하겠습니다.
순서는 아래와 같습니다.
F1[Docker Compose 파일 작성] --> F2[Docker Compose 실행]
F2 --> F3[컨테이너 확인 및 테스트]
F3 --> F4[컨테이너 관리 및 종료]
먼저, 여러 컨테이너를 정의하는 docker-compose.yaml 파일을 작성합니다.
이 docker-compose.yaml 파일은 MySQL 데이터베이스와 phpMyAdmin을 설정합니다. 각 서비스의 이미지, 포트, 환경 변수를 정의합니다.
docker compose up -d
이 명령어는 백그라운드에서 (-d 옵션) 정의된 모든 컨테이너를 시작합니다.
실행 중인 컨테이너들을 확인하고, 필요한 경우 테스트합니다.
이 명령어는 현재 실행 중인 모든 컨테이너의 상태를 보여줍니다.
웹 브라우저에서 http://localhost:8082로 접속하여 phpMyAdmin 인터페이스를 확인하고, MySQL 데이터베이스가 정상적으로 작동하는지 테스트합니다.
필요에 따라 전체 컨테이너를 중지하거나 삭제합니다.
이 명령어들은 각각 모든 컨테이너를 중지하고 삭제합니다. docker-compose down 명령어는 네트워크와 볼륨도 함께 삭제할 수 있습니다.
[Docker] GitLab 설치: Docker Compose로 빠르고 안전하게 (0) | 2024.05.28 |
---|---|
[Docker] Dockerfile 튜토리얼: Ubuntu에서 Nginx 웹 서버 설정하기 (0) | 2024.05.28 |
[Docker] 네트워킹: bridge vs host (0) | 2024.05.24 |
[Docker] 데이터 저장 및 관리 방법 / bind or volume 마운트 (0) | 2024.05.24 |
[Docker] 아키텍처 architecture (0) | 2024.05.23 |