Docker Container

Docker – Docker Compose 설정

  • Docker Compose 란?
    • 다중 컨테이너 도커 애플리케이션을 정의하고 실행하기 위한 도구
    • Docker Compose 파일 – docker-compose.yml
      • YAML 이란?
        • YAML Ain’t Markup Language의 약자
        • 일반적으로 구성 파일 및 데이터가 저장되거나 전송되는 응용 프로그램에서 사용됨
        • 상대적으로 이해하기 쉽고 가독성이 좋도록 디자인된 포맷
  • Docker Compose 파일 설정
명령 의미
image 컨테이너에서 사용하는 이미지
version docker compose 버전
services 이곳에 실행하려는 컨테이너들을 정의
build build 파일 정보
context docker 이미지를 구성하기 위한 파일과 폴더들이 있는 위치
dockerfile Dockerfile명 지정
ports 호스트에 연결할 포트 맵핑 (형식 = 로컬 포트 : 컨테이너 포트)
volumes 로컬 머신에 있는 파일들 맵핑
stdin_open 기본 입력(stdin)을 연결
environment 환경 변수
mem_limit 메모리 제한 설정
network_disabled 네트워크 비활성화 여부
entrypoint 컨테이너 시작시 실행 명령어
depends_on 의존 관계의 docker container
  • 간단한 Docker compose 파일 설정 예시
    • EB에서 docker-compose file version 2.0은 Dockerrun.aws.json로 불러옴 ( Amazon Linux AMI )
    • EB에서 docker-compose file version 3 이상일때 사용 ( Amazon Linux 2 )
version: "3"
services:
  frontend:
    image: image-name
    volumes:
      - volumes-path
    stdin_open: true
    mem_limit: memorys
    environment: 
      TZ: "Asia/Seoul"

  backend:
    image: image-name
    container_name: app_backend
    volumes:
      - volumes-path
    mem_limit: 128m
    environment: 
      MYSQL_HOST: $MYSQL_HOST 
      MYSQL_USER: $MYSQL_USER 
      MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
      MYSQL_DATABASE: $MYSQL_DATABASE
      MYSQL_PORT: $MYSQL_PORT   
      TZ: "Asia/Seoul"

  nginx: 
    restart: always
    image: image-name
    ports: 
      - "80:80"
    environment: 
      TZ: "Asia/Seoul"
  • Docker Compose 실행 및 중단
    • docker-compose.yml 파일이 있는 디렉터리에서 실행해야함
    • up 옵션 – 사용 예시 (또는 설명)
      • –build : 이미지 유무에 상관없이 빌드하고 컨테이너 시작
      • -d detached : 백그라운드 모드로 실행
      • -f file : 파일명 지정
# 이미지가 없을때만 빌드하고 컨테이너 시작
docker-compose up
docker-compose -f docker-compose-dev.yml up --build

# compose 컨테이너 중단
docker-compose stop

# compose 컨테이너 중단 및 삭제
docker-compose down

참고 자료

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.