Infra/IaC

[Docker] compose

jykim23 2023. 10. 26. 17:40

출처 : 패캠 gitops

docker repo 설정 : https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

compose plugin 설치 : https://docs.docker.com/compose/install/linux/

패키지 설치 명령어 : sudo apt-get install docker-compose-plugin

수동 설치 : https://docs.docker.com/compose/install/linux/#install-the-plugin-manually

 

 

튜토리얼 : https://docs.docker.com/compose/gettingstarted/

environment variable : https://docs.docker.com/compose/compose-file/05-services/#environment

등 상세 내용 확인 해야 한다.

 

docker compose CLI, YAML 파일 작성

정의 : https://github.com/compose-spec/compose-spec/blob/master/spec.md

docker compose CLI 보다 YAML 파일 사용하는 것이 IaC 운영에 특화 되어 있다.

특징 : caching으로 빠른 서비스 실행, 동일네트워크 안에서 API 통신 가능

단계 : Dockerfile -> docker-compose.yaml -> docker compose up

단점 : 여러개의 컨테이너를 운영하므로 높은 이해도가 필요하면 도커 호스트의 리소스 관리도 해야한다.

 

 

YAML : Yet Another Markup Language or YAML ain't markup language(Text file)

문법 : 들여쓰기(띄어쓰기만 허용. tab 미지원), python dictionary(key, value) 숫자형, 문자형, Boolean형 지원.

 

코드 작성 순서

version

services # Dockerfile

networks

volumes

healthcheck

 

들여쓰기 검증 : yamllint.com | codebeautify.org/yaml-validator | onlineyamltools.com/validate-yaml

 

docker compose {-f compose.yaml} # 기본값

docker compose config

docker compose up -d # 백그라운드 실행

docker compose ps # 조회

docker compose stop 서비스(컨테이너)

docker compose start 서비스

docker compose logs -f 서비스

docker compose pause

docker compose down # stop & rm

 

 

연습 코드 :  https://docs.docker.com/compose/samples-for-compose/

https://github.com/docker/awesome-compose/blob/master/elasticsearch-logstash-kibana/