Docker Compose
2023. 10. 4. 14:41ㆍdocker
Docker Compose
Docker Compose는 여러 개의 독립적인 Docker 컨테이너를 정의하고 관리하기 위한 도구다. Docker Compose를 사용하면 여러 컨테이너 간의 상호 작용 및 구성 관리를 단순화할 수 있다.
Docker Compose의 주요 개념
- Compose 파일 : Docker Compose에서는 YAML 형식의 Compose 파일을 사용하여 컨테이너를 정의한다. 이 파일에는 서비스, 네트워크, 볼륨 및 환경 변수와 같은 컨테이너 설정이 포함된다.
- 서비스 : Compose 파일에서 정의한 각 컨테이너는 "서비스"로 간주된다. 예를 들어, 웹 애플리케이션과 데이터베이스 서버는 각각 별도의 서비스로 정의된다.
- 컨테이너 관리 : Docker Compose를 사용하면 여러 컨테이너를 한 번에 시작하거나 중지하고, 로그를 확인하고, 상태를 모니터링할 수 있다. "docker-compose up", "docker-compose down", "docker-compose logs" 등의 명령어를 사용하여 컨테이너를 관리한다.
- 컨테이너 간 통신 : 서비스 간 통신은 Compose 파일에 정의된 네트워크 설정을 통해 관리된다. 이를 통해 컨테이너 간에 IP 주소 또는 호스트 이름을 사용하여 통신할 수 있다.
- 환경 변수 및 볼륨 : Compose 파일에서 환경 변수를 설정하거나 데이터를 저장하기 위한 볼륨을 정의할 수 있다. 이를 통해 컨테이너 간 데이터 공유와 구성 관리를 단순화할 수 있다.
주요 사용 사례
- 로컬 개발 환경 구축 : 개발자들은 로컬 환경에서 애플리케이션의 여러 구성 요소를 Docker Compose로 정의하여 테스트 및 디버깅을 수행할 수 있다.
- 다중 컨테이너 애플리케이션 배포 : 복잡한 애플리케이션을 Docker Compose로 정의하고, 개발 환경에서 프로덕션 환경으로 쉽게 이동할 수 있다.
- 테스트 환경 : 테스트 스위트를 위한 컨테이너 기반 테스트 환경을 설정하고 테스트를 자동화할 수 있다.
- 스케일링 및 로드 밸런싱 : Compose 파일을 기반으로 컨테이너를 여러 개 복제하여 애플리케이션을 확장하고 로드 밸런싱할 수 있다.
docker compose 파일 생성 예제
version: '3'
services:
nginx:
image: nginx
ports:
- 600:80
volumes:
- ./:/usr/share/nginx/html/
실행
다른 방법
- Dockerfile 생성
FROM nginx:latest
ADD index.html /usr/share/nginx/html/
- docker-compose.yml 생성
version: '3'
services:
nginx:
build:
context: .
ports:
- 8000:80
그 밖의 명령어