- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- TWIL
- react
- 아고라스테이츠
- Refactoring
- 면접을 위한 cs 전공지식 노트
- CRUD
- LEVEL1
- TIL
- CSS
- LEVEL 1
- javascript
- First Project
- 에러핸들링
- TMIL
- 프로그래머스
- MariaDB
- Git
- 리팩터링 2판
- Docker
- mongodb
- java
- LEVEL 2
- 알고리즘
- sql
- 오늘도 개발자가 안된다고 말했다
- typescript
- 코딩테스트
- Err-Handling
- 코어 자바스크립트
- 배포
Archives
성장에 목마른 코린이
[배포] Docker Compose 본문
728x90
Docker Compose
여러 개의 컨테이너가 하나의 Application으로 동작할 때,
이를 테스트하려면 각 컨테이너를 하나씩 생성해야 합니다.
여러 개의 컨테이너로 구성된 Application을 구축하기 위해서 run 명령어를 여러 번 사용할 수 있지만,
테스트 단계에서는 매번 run 명령어에 옵션을 설정해서 진행하기에 번거로움이 있습니다.
이를 위해 Docker Compose
는 YAML
파일을 통해 여러 개의 컨테이너의 실행을 한번에 관리하여,
하나의 프로젝트처럼 다룰 수 있는 환경을 제공합니다.
예시
웹 어플리케이션을 서비스 한다고 했을 때 서비스가 실행되기 위해서는 웹서버(Apache, Nginx)와
Database(Oracle,MariaDB,MySQL)컨테이너를 생성해야 합니다.
Docker로 해당 서비스를 수행한다고 하면 아래와 같이 매번 docker run 옵션을 설정해 CLI컨테이너를 생성해야 합니다.
Docker 를 통한 웹 서비스 컨테이너 생성 방법
# Mysql 컨테이너 생성
$ docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=<password> -d -p 3306:3306 mysql:latest
#Apache 컨테이너 생성
$ docker run -d --name apache -p 8080:80 httpd
Docker Compse는 이런 번거로움을 해결하기 위해 여러 컨테이너를 하나의 서비스로 묶어 다룰 수 있는 작업환경을 제공합니다.
Docker-Compose(
docker-compose.yml
)를 이용한 웹 서비스 컨테이너 생성
위 그림 처럼 Docker Compose는 docker-compose.yml
에 서비스할 컨테이너를 정의하고 묶음으로 관리할 수 있습니다.
- docker-compose.yml
- version: YAML 파일 포맷 버전
- service: 생성될 컨테이너들의 묶음
- apache, mysql: 생성할 서비스 이름
version: "3.8"
services:
apache:
build: './apache/'
depends_on:
- mysql
networks:
- frontend
- backend
ports:
- "8080:80"
volumes:
- ./public_html/:/var/www/html/
mysql:
image: mysql:5.6.40
networks:
- backend
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
networks:
frontend:
backend:
'배포' 카테고리의 다른 글
[배포] Docker (0) | 2022.11.24 |
---|---|
[배포] 에러핸들링 - pm2 프로세스 무한증식 (0) | 2022.11.22 |
[배포] 에러핸들링 pm2 startup을 수행하였으나 Ubuntu reboot후 서비스들이 정상적으로 시작되지 않을 때 (0) | 2022.11.22 |
[배포] CI/CD (지속적인 통합/배포) (0) | 2022.11.15 |
[배포] nginx.conf 옵션 (0) | 2022.11.04 |
Comments