1. 도커 컴포즈란?
compose 란 복수 개의 컨테이너를 실행시키는 도커 애플리케이션을 정의하기 위한 툴이다.
.yaml 파일을 상용하여 애플리케이션의 서비스를 구성할 수 있다.
예를 들어 서비스가 실행되기 위해서는 웹서버(Nginx, Apache)와 데이터베이스(mysql.. 등) 컨테이너를 생성해야 한다.
이때 도커로 실행하려면 매번 run 옵션을 적용하여 컨테이너를 생성해야 하는데,
도커 컴포즈는 여러 컨테이너를 하나의 서비스로 묶어 다룰 수 있는 환경을 제공한다.
version: "3"
services:
#container_name
echo:
# docker_image
image: example/echo:latest
ports:
- 9000:8080
docker-compose.yaml은 위와 같이 작성할 수 있으며 services하단에 다른 컨테이너를 추가로 적어 줄 수 있다.
주의점
- yaml 작성법
- 웹을 가장 마지막에 적어줘야 웹에서 db 및 다양한 서비스들을 인식하고 실행할 수 있다.
2. 도커 구성 step
- 앱의 환경을 정의하여 어디에서나 재사용할 수 있는 Dockerfile 정의
- docker-compose.yaml 에 앱 구성에 필요한 서비스를 정의
- docker-compose up을 실행하여 전체 앱을 시작
이를 통해 얻을 수 있는 최대 이점은 자동화된 테스트로
CI(Continuous Integration) &CD(Continuous Deployment)가 가능하다는 점이다.
또한 single command(docker-compose up)를 통해 각각의 의존성 있는 하나 또는 수많은 컨테이너를 만들고, 실행시켜
개발 환경 세팅이 훨씬 간편해진다.
3. 명령어
# 실행 명령어
# 이미지가 없을때 빌드하고 컨테이너 시작
docker-compose up
# 이미지 유무에 상관 없이 이미지 빌드 후 컨테이너 시작
docker-compose up -build
# 백그라운드 실행
docker-compose up -d
# 재시작 명령어
docker-compose up restart
# 중지 명령어
docker-compose down
# 로그 계속적으로 읽기
docker-compose logs-f
# 도커 컨테이너 상태확인
docker-compose ps
'👩💻 개발 > 📡 DEVOPS' 카테고리의 다른 글
[DevOps] SpringBoot + GitHub action + Nginx + AWS 배포 - 2 (0) | 2023.02.22 |
---|---|
[DevOps] SpringBoot + GitHub action + Nginx + AWS 배포 - 1 (2) | 2023.02.21 |
[DevOps] Github Actions란? (0) | 2023.02.20 |
[Nginx] Nginx란? (0) | 2022.12.26 |
[Docker] 도커란 무엇인가? (0) | 2022.12.23 |