ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker) Docker Compose 알아보기
    Cloud/Docker 2022. 10. 6. 01:25

    container orchestration 배경

    Docker Compose vs Kubernetes

    기존 Docker를 이용한 Application 배포방식은 하나의 container를 생성하는 경우에 큰 문제는없다.
    하지만 서로 연관된 여러 container로 서비스를 제공하는 경우, container의 생성순서 나 연관 관계를 처리하기 위해서 container orchestration 도구(Docker Compose, Kubernetes 등)를 필요로 한다.



    Docker Compose 란?

    • 공통성을 갖는 container application stack을 YAML 코드로 정의한 정의서이며, 정의서를 실행하는 다중 container 실행 도구를 IaC도구라고 한다.
    • 공통의 목적을 갖는 application stack을 Docker Compose YAML 코드로 정의해서 한번에 서비스를 올리고 관리할 수 있는 도구다.
    • Docker Compose로 실행된 container는 독립된 기능을 가지며, 공통 network로 구성되기 때문에 container간 통신이 쉽다.
    • Docker Compose는 공통성이 있는 container들을 포함하여 쉽고 빠른 run-time 환경을 제공한다.
    • Docker Compose는 test, development, operation의 모든 환경에서 구성가능한 orchestration 도구 중 하나다.
    • 다양한 관리 기능을 가지고 있지 않기 때문에 test와 debelopment 환경구성에 적합하다.
    • 실제 운영환경은 많은 관리적 요소가 필요하므로 Docker Swarm이나 Kubernetest와 같은 orchestration 도구를 사용한다.


    Docker Compose YAML 파일

    YAML 파일 예

    1. YAML 파일 이름은 docker-compose.yml, docker-compose.yaml, compose.yml, compose.yaml 중 하나로 지정해야  명령이 정상적으로 실행된다.
    2. 일반적으로 설계상 가장 먼저 실행되어야 하는 application을 먼저 작성하고, 의존성을 갖는 DataBase 및 하위  application을 작성한다.
    3. YAML 파일 코드 구조 
      • version
        • 가장 상단에 기술한다.
        • Docker engine버전과 연관성이 있어 Docker engine에 따른 버전 번호를 기술한다.
      • services
        • Docker Compose를 통해 실행할 서비스를 정의한다.
        • service명 은 container 이름을 의미한다.
        • service명 다음에 해당 container를 생성하기 위한 정보를 기술한다.
        • build 속성은 Dockerfile을 이용한 image생성시 사용한다.
        • depends on은 의존성 서비스를 명시함으로, 제일 먼저 실행시킨다.


    댓글

Designed by Tistory.