02.Docker/Docker

[docker-compose] docker-compose 란?

basicinfo119 2022. 4. 5. 13:39
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

 

2.docker-compose (docker-compose.yml)를 이용한 웹 서비스 컨테이너 생성 

docker-compose 사용 방법

위 그림 처럼 도커 컴포즈는 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:

 

 

3.docker-compose  와 Docker 호환성 메트릭스 

도커컴포즈는 yml 파일로 컨테이너 구성하는데 사용하는 도커 버전에 따라 도커 컴포즈 버전을 맞춰서 사용해야 한다. 

현재 도커 컴포즈 버전은 3.9 버전까지 릴리즈 되어 있습니다. 

아래표는 도커 컴포즈 와 호환되는 도커 버전에대한 호환성 메트릭스 표입니다. 

 

Docker and Docker-compose&nbsp;compatibility matrix

 

https://docs.docker.com/compose/compose-file/compose-file-v3/

 

Compose file version 3 reference

 

docs.docker.com

 

728x90
반응형