본문 바로가기
개발/Docker

docker-compose 개념 및 참고자료

by meanjung 2021. 8. 8.

flask 웹 서버에 ELK stack을 적용하려고 한다.

그런데 elk를 찾아보니까 다들 docker-compose를 이용해서 했더라...

블로그 따라 해봐도 이해가 잘 안 가길래 docker compose 개념부터 공부해보기로 했다.

 


docker-compose

- 여러 컨테이너를 일괄적으로 관리하는 도구

- 대부분 시스템은 여러 대의 서버가 유기적으로 연결되어 하나의 서비스처럼 동작하기 때문에 그런 도구가 필요하다.

- docker-compose.yml 파일로 여러 개의 도커 컨테이너의 정의를 작성하여 한 번에 많은 컨테이너들을 작동시키고 관리할 수 있는 툴

 

docker-compose.yml

- docker-compose의 구성 파일

- 한 파일 안에 여러 컨테이너 설정 내용을 저장한다.

- docker application을 위한 서비스, 네트워크, 볼륨 등을 정의한다.

- yaml 형식을 사용한다.

 

 

docker-compose.yml  image, build 차이

[출처 : https://nirsa.tistory.com/79]

- image

docker-compose.yml 안에서 베이스 이미지를 지정할 수 있다.

베이스 이미지가 로컬 환경에 없다면 docker hub에서 다운로드해 베이스 이미지로 사용되고, 만약 로컬 환경에 있다면 그 이미지를 베이스 이미지로 사용하게 된다.

 

- build

image는 어떤 베이스 이미지를 사용할 지 docker-compose.yml에서 선언했다면, 

build는 docker-compose.yml에서 선언해서 Dockerfile을 이용해 자동으로 docker build 후 베이스 이미지로 사용할 수 있다.

 

docker-compose.yml, Dockerfile에 알맞게 넣어주고, docker-compose up 명령어를 입력하면 자동으로 Dockerfile을 빌드해서 베이스 이미지를 만들어준다. 

 

 

docker-compose 설치

https://hcnam.tistory.com/25

 

[Ubuntu] Docker / Docker-compose 설치

우분투 18.04.3 LTS 기준 작성입니다. vmware위의 우분투위에 일종의 vm인 도커를 깔다니 ㅎㅎ 1. 사전 준비  curl등이 깔려있는지 한번 체크해봅시다. sudo apt update 로 먼저 레포를 한번 업데이트해주고

hcnam.tistory.com

 

docker lifecycle 및 docker-compose 명령어

(1) 옵션 -f

기본적으로 docker-compose는 커맨드가 실행하는 디렉토리에 있는 docker-compose.yml을 설정파일로 사용한다.

☞ docker-compose ~ 명령어를 실행하고 싶다면 docker-compose.yml이 있는 디렉터리에서 실행해야 한다는 뜻!

+ 만약 다른 이름이나 경로의 파일을 docker compose 설정 파일로 사용하고 싶다면?

docker-compose -f docker-compose-rename.yml up

 

(2) up

docker-compose up

docker compose에 정의되어 있는 모든 서비스 컨테이너를 한 번에 생성하고 실행하기 위해 사용한다.

+ <-d 옵션>을 사용하면 백그라운드에서 컨테이너를 띄울 수 있다.

+ -d 옵션을 사용하지 않으면 터미널에 컨테이너의 로그가 출력되고, ctrl+c 눌러 탈출하는 순간 모든 컨테이너가 정지된다.

 

(3) down

<-> up

docker-compose down

docker-compose에 정의되어 있는 모든 서비스 컨테이너를 한 번에 정지시킨다.

 

(4) start

docker-compose start <서비스>

내려가 있는 특정 서비스 컨테이너를 올리기 위해 사용한다.

대부분은 docker-compose up를 사용해도 내려가 있는 서비스를 알아서 올려준다.

 

(5) stop

<-> start

docker-compose stop <서비스>

돌아가고 있는 특정 서비스 컨테이너를 정지시키기 위함

 

(6) ps

docker-compose ps

docker-compose에 정의되어 있는 모든 서비스 컨테이너 목록 조회

 

(7) logs

docker-compose logs -f <서비스>

서비스 컨테이너의 로그를 확인하고 싶을 때 사용한다.

* -f 옵션 : 실시간 로그

 

 

 


추가적으로 읽어볼 개념/블로그

- docker network (ifconfig 입력시 결과를 바탕으로)

- https://brunch.co.kr/@sokoban/30

 

Docker 개발환경의 구축

docker-compose의 활용 | 몇년전부터 docker가 사람들 사이에 오르내리기 시작하다 최근에 많은 곳에서 docker를 사용중에 있고 다양한 오픈소스들 대부분이 docker이미지를 제공하고 있다. 그렇다면 docke

brunch.co.kr

 

- https://velog.io/@ba93love/Docker-%EC%9C%84%EC%9D%98-%EC%9B%B9%EC%84%9C%EB%B2%84-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%84%B8%ED%8C%85-3-Flask-%EC%84%B8%ED%8C%85

https://github.com/paullee714/Flask-Vue-ELK-Mongo-Docker/tree/6a170d8b40e7ebd9e3de0d99876541a6baefc2e3

 

Docker에서 ELK와 Flask서버 연동하기

paullee714/Flask-Vue-ELK-Mongo-Docker이전 글에서는 ELK 스택을 docker화 하기 위한 confg, Dockerfile 들을 작성하였다.이번 글에서는 ELK스택으로 분석할 로그가 있는 flask서버를 작성하고, docker-compose

velog.io

 

GitHub - paullee714/Flask-Vue-ELK-Mongo-Docker: Flask, Vue ,ELK, MongoDB with Docker

Flask, Vue ,ELK, MongoDB with Docker . Contribute to paullee714/Flask-Vue-ELK-Mongo-Docker development by creating an account on GitHub.

github.com

 

- https://techblog.woowahan.com/2659/

 

ELK 셋팅부터 알람까지 | 우아한형제들 기술블로그

{{item.name}} 안녕하세요. 저는 상품시스템팀에서 개발업무를 맡고 있는 이중석입니다. 최근 팀 내에서 로그엔트리를 ELK 로 전환하고 필요한 알람을 셋팅하는 작업을 진행했습니다. 이 과정중 알

techblog.woowahan.com

 

- https://ryu-e.tistory.com/11

 

도커 컴포즈 사용하기

💡 목차 이번 시간에 학습할 부분은 아래와 같다. 전체적으로 무엇을 배울지 미리 확인하고 가자. 도커 컴포즈 사용하는 이유 도커 컴프즈를 사용하는 이유를 알고 가자 도커 컴포즈 설치하기

ryu-e.tistory.com


출처

https://www.daleseo.com/docker-compose/

 

Docker Compose 커맨드 사용법

Engineering Blog by Dale Seo

www.daleseo.com

 

'개발 > Docker' 카테고리의 다른 글

docker save, load  (0) 2021.11.17
docker image build & docker-compose up  (0) 2021.10.15
docker, docker-compose  (0) 2021.08.12
가상화방식의 역사(docker의 등장까지)  (0) 2021.08.12
Docker lifecycle  (0) 2021.01.21

댓글