728x90
반응형
docker-compose 란?
여러개의 컨테이너가 유기적으로 묶여서 하느의 어플리케이션으로서 동작이 필요할경우 유용하게 사용할수 있는기능입니다.
예를 들어 웹 어플리케이션을 서비스 한다고 했을 때 서비스가 실행되기 위해서는 웹서버(Apache, IIS, Nginx )와 Database(Oralce,Tibero,Mysql,posgressSql) 컨테이너를 생성해야 합니다.
Docker 로 해당 서비스를 수행한다고 하면 아래와 같이 매번 docker run 옵션을 설정해 CLI(Commnad Line Interface) 컨테이너를 생성 해야 합니다.
docker-compose 는 이런 번거로움을 해결하기 위해 여러 컨테이너를 하나의 서비스로 묶어 다룰수 있도록 작업 환경을 제공합니다.
1.Docker 를 통한 웹 서비스 컨테이너 생성 방법
# Mysql 컨테이너 생성
$ docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=<password> -d -p 3306:3306 mysql:latest
#Apach 컨테이너 생성
$ docker run -d --name apache -p 8080:80 httpd
$ docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=<password> -d -p 3306:3306 mysql:latest
#Apach 컨테이너 생성
$ docker run -d --name apache -p 8080:80 httpd
2.docker-compose (docker-compose.yml)를 이용한 웹 서비스 컨테이너 생성
위 그림 처럼 도커 컴포즈는 docker-compose.yml 에 서비스할 컨테이너를 정의 하고 묶음으로 관리 할수 있다.
- docker-compose.yml
- version :YAML 파일 포맷 버전을 나타냅니다.
- service : 생성될 컨테이너들의 묶음을 나타냅니다.
- apach, 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:
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:
3.docker-compose 와 Docker 호환성 메트릭스
도커컴포즈는 yml 파일로 컨테이너 구성하는데 사용하는 도커 버전에 따라 도커 컴포즈 버전을 맞춰서 사용해야 한다.
현재 도커 컴포즈 버전은 3.9 버전까지 릴리즈 되어 있습니다.
아래표는 도커 컴포즈 와 호환되는 도커 버전에대한 호환성 메트릭스 표입니다.
https://docs.docker.com/compose/compose-file/compose-file-v3/
728x90
반응형
'02.Docker > Docker' 카테고리의 다른 글
[Docker] Docker 사용 시 에러 해결 모음 (0) | 2024.08.28 |
---|---|
Docker 설치 (0) | 2022.03.20 |
자주 사용하는 Docker 명령어 (0) | 2022.03.18 |
사용자 계정에서 Docker Command 사용 방법 (0) | 2022.02.22 |