- Docker-Compose로 반복 컨테이너 작업 줄이기2021년 11월 27일 11시 43분 32초에 업로드 된 글입니다.작성자: jCurve728x90반응형
진행했던 프로젝트에서 Docker를 빈번하게 사용하는 일이 많았는데 매번 컨테이너를 직접 띄워주는게 너무 귀찮았습니다.
또 배포시 build한 Spring Application 이미지로 컨테이너를 띄울 때 replica 설정으로 한 번에 여러개를 띄우고 로드밸런싱을 적용했기 때문에 Docker-Compose를 사용하면 이런 상황에서 잦은 반복을 줄여주어 편하게 진행할 수 있었습니다.
우선 Spring Application의 이미지를 빌드하기 위해 해당 디렉토리에 DockerFile을 만들어 주어 설정을 해주었습니다.
초반에는 이런식으로 DockerFile에 빌드 스크립트를 작성해주고 docker build -t [name:tag] [dockerfile location] 이런식으로 지정하여 직접 이미지를 빌드후 컨테이너를 띄워주다 후에 redis도 컨테이너로 띄워 여러개의 spring server에서 해당 컨테이너에 사용자 세션 정보를 저장하고 참조하는 방식으로 구성하게 되어 이것만 해도 4번의 docker run 명령어 작업을 수행해야 했고 나중에는 nginx까지 포함되어 5번이 되었습니다.
이런 반복 너무 귀찮습니다..
그래서 저는 docker-compose.yml 파일에 설정을 하여 편하게 여러 컨테이너를 관리하도록 하겠습니다.
(Docker-Compose 관련 설치나 사용은 공식문서나 관련 블로그가 많으므로 저는 생략합니다.)
우선 docker-compose.yml 파일을 만들고 각 서비스의 이름과 설정을 넣어줍니다.
services 아래 spring, redis, nginx 처럼 yml의 각 depth로 표현된 것이 각각의 service를 의미합니다.
build property로 dockerfile로 이미지를 빌드후 컨테이너를 띄울 수 있게 설정이 가능합니다.
spring application이 띄워지기 전에 redis 컨테이너가 먼저 올라와야 하고 , nginx 컨테이너가 올라오기전 spring 컨테이너가 올라와야 하는 것과 같은 order 설정은 depends_on으로 설정해줍니다.
그외 볼륨 마운트나 포트 포워딩, 컨테이너 링크 , 스케일 등등의 설정을 작성해주었습니다.
이제 이 docker-compose.yml 파일로 간편하게 여러 컨테이너를 한번에 관리할 수 있습니다.
터미널에 들어가서 docker-compose up --build -d 명령어로 실행 해줍시다.
build후 컨테이너 동작과 depends_on 설정대로 컨테이너가 올라오는 것을 확인할 수 있습니다.
동작하고 있는 컨테이너를 확인해주기 위해 docker ps 명령어로 자세한 정보를 확인해 봅시다.
이렇게 Docker-Compose로 잦은 docker 작업을 간편하게 관리해 보았습니다.
그럼 이걸로 끝
반응형'DEV-OPS' 카테고리의 다른 글
Docker Nginx - Reverse Proxy, Load Balancing (0) 2021.11.27 Jenkins CI/CD Pipeline (0) 2021.11.25 Ngrinder로 성능을 테스트 후 캐시로 성능 올리기 (0) 2021.10.06 댓글