-
docker-compose란?Server/Container 기술 2024. 12. 9. 17:08
오랜만에 docker-compose로 환경을 구성하면서 정리해 두려고 한다.
주요기능
1. 멀티 컨테이너 애플리케이션 관리
- 여러 개의 Docker 컨테이너를 하나의 구성 파일로 정의하고 실행 가능하다.
- 웹 애플리케이션, 데이터베이스, 캐시서버 등 단일 명령으로 실행 가능하다.
2. 의존성 관리
- 컨테이너 간의 의존성을 정의하고 자동으로 순서를 조정할 수 있다.
- 예: 데이터베이스 컨테이너가 준비될 때까지 웹 컨테이너 대기한다.
3. 간편한 실행
- 단일 명령으로 모든 컨테이너를 시작, 중지, 재시작 가능하다.
4. 환경 파일 지원
- .env 파일을 사용하여 환경 변수를 정의하고 재사용이 가능하다.
5. 네트워크와 볼륨 관리
- 네트워크 : 컨테이너 간 통신을 위한 네트워크를 자동 생성 및 관리 할 수 있다.
- 볼륨 : 컨테이너의 데이터를 호스트에 영구적으로 저장이 가능하다.
docker-compose.yml 파일 예제
version: '3.9' services: web: image: nginx:latest ports: - "8080:80" volumes: - ./nginx:/usr/share/nginx/html networks: - app-network app: build: context: ./app ports: - "3000:3000" networks: - app-network depends_on: - db db: image: postgres:13 environment: POSTGRES_USER: user POSTGRES_PASSWORD: password volumes: - db-data:/var/lib/postgresql/data networks: - app-network volumes: db-data: networks: app-network:
주요 요소 설명
1. services
- 실행할 컨테이너를 정의할 수 있다.
2. networks
- 컨테이너 간 통신을 위한 네트워크를 정의할 수 있다.
3. volumes
- 데이터 영속성을 위해 호스트와 컨테이너 간의 디렉토리를 공유 할 수 있다.
4. depends_on
- 컨테이너의 실행 순서를 정의할 수 있다.
- 예: app는 db가 실행된 후 실행되어야 한다.
docker-compose 주요 명령어
1. 컨테이너 시작
$ docker-compose up
2. 컨테이너 백그라운드 실행
$ docker-compose up -d
3. 컨테이너 중지
$ docker-compose down
4. 로그 확인
$ docker-compose logs
5. 컨테이너 재시작
$ docker-compose restart
6. 기타
$ docker-compose up --build $ docker-compose -f docker-compose.local.yml up -d --build
Docker Compose의 장점
- 간결한 관리 : YAML 파일로 복잡한 설정을 간단히 정리 가능하다.
- 이식성 : 다른 개바자와 환경을 쉽게 공유 가능하다.
- 의존성 해결 : 서비스 간의 의존성을 자동으로 처리 가능하다.
- 유지보수 용이 : 설정 변경과 업데이트가 쉽고 명확하다.
GTP등 여러 리서치 결과물들을 가지고 다시한번 머릿속에 정리하는 시간을 가져 보았다.'Server > Container 기술' 카테고리의 다른 글
docker-compose 개발 환경 만들기 (1) 2024.12.09 Colima란 (0) 2024.11.09