Docker - 7. Docker Compose

2020-02-25

Index


  1. Docker
    1. Docker 개념
    2. Docker Install
    3. Docker Command
    4. Docker Example
    5. Image 만들기
    6. Dockerfile
    7. Docker Compose
    8. Image 저장소

  1. Container Orchestration
    1. Container Orchestration 이란
    2. kubernetes(1)
    3. kubernetes(2)
    4. kubernetes install
    5. kubernetes ui
    6. kubernetes를 이용해 배포해보기
    7. kubectl CLI

  1. Provisioning
    1. Provisioning이란
    2. Ansible
    3. Ansible을 이용해 kubernetes cluster 생성하기

Docker Compose

Docker Compose는 다중 Container Application을 정의하고 실행하기 위한 도구입니다.
YAML파일을 사용하여 Application 서비스를 구성합니다.
예를 들어 Application 을 구동하기 위해 DB 설치를 하고, Application 구동 해야 한다면
DB 용 Container를 구성하고 Application용 Container를 구성해야 합니다. 이러한 구성을 Compose를 이용한다면
YAML로 작성된 설정파일 1개로 구성이 가능합니다.

Compose는 3단계 프로세스가 작동합니다.

  1. Dockerfile로 환경을 정의함
  2. docker-compose.yml에서 앱을 구성하는 서비스를 정의하여 격리된 환경에서 함께 실행 될 수 있도록 함.
  3. docker-compose up을 실행하면 Compose가 전체 앱을 시작하고 실행

관련 문서는 여기를 참고해주세요

1.Docker Compose 설치

간단하게 아래 명령어로 설치가 가능합니다.

1
2
3
4
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

image44

2.Docker Compose로 Container구동하기

1
2
3
이번에 진행할 Sample 역시 broker-api 입니다.
broker-api개발시 vision연동 데이터를 저장히가 위해 mongo-db 를 설치 했었습니다.
docker-compose로 mongodb 와 broker-api 를 container구동해보도록 하겠습니다.

2-1. yaml 파일을 작성

2.2 docker compose 실행

docker compose를 실행하게되면 yaml파일에 정의된 내용이 실행이 됩니다.
container 까지 실행이 됩니다.
docker-compose.yml 파일이 있는 경로에서 실행해야 합니다.

1
sudo docker-compose up -d

image45

3. 작동확인

image46

image47

참고

https://www.docker.com
http://pyrasis.com/book/DockerForTheReallyImpatient
https://www.44bits.io/ko/post/almost-perfect-development-environment-with-docker-and-docker-compose
https://tech.osci.kr/docker/2018/09/10/45749387/
https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html