ssung_데이터 엔지니어링/10주차_Docker

Docker_(4)

ssungcohol 2023. 12. 21. 17:43

Docker Compose

  • 소프트웨어가 다수의 Container로 구성되는 경우 사용할 수 있는 툴 + 환경설정파일
     - docker-compose.yml 파일로 설정
     - 다양한 테스트 수행 가능
     - 다양한 버전을 만드는 것이 일반적 (dev, test, prod 등...)
  • 개별 Container를 따로 관리하는 것보다 생산성이 더 높음
  • 파일의 이름은 docker-compose.yml or docker-compose.yaml
  • Compose 사용법 자체는 간단하지만 적용 시, 배워야 할 것이 많고 구성이 복잡해짐
  • 다양한 명령어
     - docker-compose build
     - docker-compose up : build, create, start를 한 번에 하는 명령어
     - docker-compose pull : docker hub에서 이미지 읽어오기
     - docker-compose ps
     - docker-compose down : 작동을 멈추고 Container 삭제까지 진행
     - docker-compose start
     - docker-compose stop
     - docker-compose rm
     - docker-compose images : 컨테이어네 의해 실행되고 있는 이미지들만 보여줌

docker-compose.yml (yaml) 작성

  • services : 프로그램을 구성하는 서비스들을 지정
     - 각각의 서비스는 별개의 Docker Image를 지정하고 Docker Container 실행으로 구성
     - 즉, 서비스는 자신만의 Dockerfile을 갖고 있어야하고 갖고 있지 않다면 docker hub 등에서 Image다운
     - 서비스 별로 포트번호, 환경변수, 디스트 볼륨 등을 지정해야함
     - 서비스 이름은 아무거나 지정 가능
  • volume : docker volume을 지정
  • network : network를 지정
     - network 미지정 시 같은 docker-compose 그룹 내에서는 모두 연결
     - "default"라는 이름으로 기본 network 생성
  • .yml or .yaml이 아닌 다른 이름의 파일을 사용하고자 하면 -f 옵션을 사용
  • docker-compose.yml 예제
더보기

services:

  frontend:

    build: ./frontend

    ports:

      - 3000:3000

  backend:

    build: ./backend

    port:s:

      - 3001:3001

    enviroment:

      DB_URL: mongodb://database/vidly

database:

  image: mongo:4.0-xenial

  ports:

    - 27017:27017

  volumes:

    - vidly: /data/db

volumes:

  vidly

728x90

'ssung_데이터 엔지니어링 > 10주차_Docker' 카테고리의 다른 글

Docker_(5)  (0) 2023.12.22
Docker_(3)  (0) 2023.12.20
Docker_(2) with CI/CD  (0) 2023.12.19
Docker_(1) feat. vi (or vim)  (0) 2023.12.18