Dokcer Compose 이론(로컬 환경에서 도커를 활용)

canyi·2023년 4월 11일
0

Docker

목록 보기
7/9

도커 컴포즈란?

• 도커 컨테이너를 일괄적으로 정의하고 제어하는 도구
• 설정 파일을 도커 CLI로 번역하는 역할

공식문서

도커 컴포즈를 활용한 예제

https://github.com/drum-grammer/docker-pro-wanted/blob/main/local-infra.yml

version: '3.0'

services:
  mariadb10:
    image: mariadb:10
    ports:
     - "3310:3306/tcp"
    environment:
      - MYSQL_ROOT_PASSWORD=my_db_passward
      - MYSQL_USER=docker_pro
      - MYSQL_PASSWORD=docker_pro_pass
      - MYSQL_DATABASE=docker_pro
  redis:
    image: redis
    command: redis-server --port 6379
    restart: always
    ports:
      - 6379:6379
  rabbitmq:
    image: rabbitmq:3-management-alpine
    container_name: 'rabbitmq'
    ports:
        - 5672:5672
        - 15672:15672
    volumes:
        - ~/.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/
        - ~/.docker-conf/rabbitmq/log/:/var/log/rabbitmq
    networks:
        - rabbitmq_go_net

networks:
  rabbitmq_go_net:
    driver: bridge

도커 컴포즈 파일 구성

version

https://docs.docker.com/compose/compose-file/compose-versioning/

services


• 실행하려는 컨테이너들을 정의하는 역할
• 이름, 이미지, 포트 매핑, 환경 변수, 볼륨 등을 포함
• 해당 정보를 가지고 컨테이너를 생성하고 관리

• image: 컨테이너를 생성할 때 쓰일 이미지 지정
• build: 정의된 도커파일에서 이미지를 빌드해 서비스의 컨테이너를 생성하도록 설정
• environment: 환경 변수 설정, docker run 명령어의 --env, -e 옵션과 동일
• command: 컨테이너가 실행될 때 수행할 명령어, docker run 명령어의 마지막에 붙
는 커맨드와 동일
• depends_on: 컨테이너 간의 의존성 주입, 명시된 컨테이너가 먼저 생성되고 실행

• ports: 개방할 포트 지정, docker run 명령어의 -p와 동일 (포트 포워딩)
• expose: 링크로 연계된 컨테이너에게만 공개할 포트 설정
• volumes: 컨테이너에 볼룸을 마운트함
• restart: 컨테이너가 종료될 때 재시작 정책
• no: 재시작 되지 않음
• always: 외부에 영향에 의해 종료 되었을 때 항상 재시작 (수동으로 끄기 전까지)
• on-failure: 오류가 있을 시에 재시작

network

volume

config

secret

도커 컴포즈 명령어

• docker-comopse -f local-infra.yml up -d
• up: 도커 컴포즈 파일로, 컨테이너를 생성하기
• -f: 도커 컴포즈 파일 지정하기
• -d: 백그라운드에서 실행하기

profile
백엔드 개발 정리

0개의 댓글