Docker Compose 기본

25gStroy·2022년 2월 21일
0

Docker

목록 보기
11/20

Docker Compose란?

Docker Compose는 여러 컨테이너를 모아서 관리하기 위한 툴

  • 하나의 웹서비스는 여러가지 서버로 이루어져 있는 경우가 많습니다.
    - 각각을 docker 컨테이너로 작성하고, 연결하여 동작하기 때문에, Docker Compose와 같은 컨테이너 관리 툴이 필요함
  • 더 규모가 커지면 복수의 컨테이너를 유지하고 관리해야하며 이를 위해 쿠버네티스 등의 관리 툴이 사용된다.

Docker Compose작성 기본

  • Docker Compose는 docker-compose.yml파일을 작성하여, 실행할 수 있음
  • docker-compose.yml파일은 YAML형식으로 작성
  • YAML 기본 문법
    • #:주석
    • ---: 문서 시작을 나타냄
    • ... : 문서끝을 나타냄
    • key:value :key 에 대한값
    • 자료형
      • int,string,boolean 지원
    • 데이터 표현은 json과 비슷하다.
    • 줄바꿈 표시: ">"

Docker Compose 파일 포맷

  • version: 파일 포맷 버전지정
  • services: 컨테이너 설정
  • volumes: 컨테이너에서 사용하는 volume설정
  • networks: 컨테이너간 네트워크 분리를 위한 추가 설정 부분

version

  • Docker Compose파일 포맷 버전 지정
  • docker 버전에 따라 지원하는 Docker Compose버전이 있으며, 기본적으로는 현제 기준으로 버전 3으로 사용하는것이 일반적임 호환성문제때문

services

  • 위 항몽 아래에서 여러개 또는 하나의 컨테이너를 설정함

  • image

    • 컨테이너명 다음 도커 허브에 있는 이미지를 사용할 경우 image를 사용하면된다.
  • restart

    • 컨테이너가 다운되었을 경우 , 항상 재시작 하라는 설정 항상 걸어주는것이 좋다.
    • 서버는 24시간 동작해야하므로 언제든 다운될 수 있으며 이를 위한 모니터링/유지보수 작업이 필요함
  • volumes

    • docker run -v 와 똑같다
    • 여러 volume을 지정할 수 있기 때문에, 리스트 처럼 작성
  • environment

    • dockerfile 의 ENV옵션과 동일한 역할
    • env_file 옵션을 사용해서 환경변수 설정을 할 수 있다.
  • ports

    • docker run -p 와 같다
    • yml에서는 쌍따옴표 안에 작성해야함

- mac에서 실행시 다음과 같은 오류가 난다면 다음 옵션을 추가해 준다

  • ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries
  • platform: linux/x86_64

docker-compose실행하기

  • docker-compose up -d

실행 중지 명령

  • docker-compose stop
profile
애기 개발자

0개의 댓글