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 설치
[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
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 |
댓글