[Docker] Docker Compose를 이용한 웹 애플리케이션 실행 환경 구축

2020. 12. 3. 19:38Docker

1. 예시 구조

예시 구조

 

 

 

2. Compose 구성 파일 작성

1) 샘플 복제

git clone https://github.com/asashiho/dockertext2
cd dockertext2/chap07

2) Compose 파일

복제한 Compose 파일의 맨 앞에는 버전이 지정되어있고, webserver와 redis라는 이름의 서비스를 정의하고 있다. webservice는 현재 디렉토리에 있는 Dockerfile로 빌드하고 컨테이너를 시작한다. Redis는 Docker Hub에 공개되어 있는 공식 이미지를 사용하여 컨테이너를 시작한다. 이 때 webservice 컨테이너는 redis 서비스에 의존하고 있다.

version: '3.3'
services:
  # WebServer config
  webserver:
    build: .
    ports:
     - "80:80"
    depends_on:
     - redis

  # Redis config
  redis:
    image: redis:4.0

3) 여러 컨테이너 시작

정의한 2개의 컨테이너를 시작하도록 Docker Compose에서 명령으로 모두 실행한다. Docker Hub에서 redis 서비스에서 사용할 이미지를 다운로드하고 webserver에서 사용할 이미지를 Dockerfile을 바탕으로 빌드된다. 준비가 끝나면 redis 서비스를 시작하고 이어서 webserver 서비스의 컨테이너가 시작된다.

// 컨테이너 시작
docker-compose up

// 컨테이너 확인
docker-compose ps

여러 컨테이너 시작 결과

4) 여러 컨테이너 정지

Docker Compose에서 관리하고 있는 컨테이너를 정지할 때는 stop 명령을 사용한다.

// 컨테이너 정지
docker-compose stop

// 리소스 삭제
docker-compose down

[참고] 완벽한 IT 인프라 구축을 위한 Docker (2판)

728x90