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 설치
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
- https://techblog.woowahan.com/2659/
- https://ryu-e.tistory.com/11
출처
https://www.daleseo.com/docker-compose/
'개발 > 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 |
댓글