Container/Docker Compose

Docker Compose

2mukee 2021. 8. 30. 17:50
320x100
320x100

도커 컴포즈

: 여러 개의 컨테이너가 하나의 애플리케이션으로 동작할 때 묶음으로 관리하기 위한 도구

: docker run 명령어를 통해 여러 개의 컨테이너를 실행하는 것과 같은 효과

=> TEST 단계에서 docker run 명령어를 남발할 경우 번거로움

 

 

 

Docker Compose의 동작원리

: 여러 개의 컨테이너의 옵션과 환경을 정의한 파일을 읽어 컨테이너를 순차적으로 생성

: 도커 컴포즈의 설정파일은 docker run 명령어의 옵션을 그대로 사용가능

: 각 컨테이너의 의존성, 네트워크, 볼륨 등을 함께 정의 할 수 있음

: 설정 파일에 정의된 서비스의 컨테이너 수를 유동적으로 변경 가능

: 컨테이너의 service discovery 자동화

=> 컨테이너가 많아지고 정의해야 할 옵션이 많을 경우 활용

 

 

 

설치방법

: 도커 컴포즈 깃허브 (https://github.com/docker/compose)에서 설치

=> README 참조 (최신 버전 확인)

 

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

: 도커 컴포즈 다운로드

 

chmod +x /usr/local/bin/docker-compose

: 실행 권한 부여

 

docker-compose --version

: 도커 컴포즈 버전 확인 (정상 설치 여부 확인)

 

 

 

도커 컴포즈 설정 파일 작성 (YAML파일)

: docker-compose.yml 생성 (vi docker-compose.yml)

 

ㆍ도커 컴포즈 파일의 기본구조

# 스키마 버전 정의 (필수)
version: "3.7" 

# 도커 컴포즈에서 실행할 서비스 항목 (필수)
services: 

# 네트워크 설정 (선택 사항)
networks:

# 볼륨 설정 (선택 사항)
volumnes:

 

ㆍ도커 컴포즈 파일 예시

version: "3.7"

services:
# service 이름

  app: 
  # 이미지
    image: node:14.15.5-alpine 
    
    # 컨테이너 실행시 실행될 명령
    command: sh -c "yarn install && yarn run dev" 
    
    # 포트 매핑
    ports: 
      - 3000:3000
      
    # 컨테이너 내 작업공간(없으면 만들어줌)
    working_dir: /app 
    
    # 볼륨 설정 (호스트:컨테이너)
    # 호스트OS의 현재 디렉터리와 컨테이너의 /app 디렉터리를 연결
    volumes: 
      - ./:/app
      
    # 환경변수 
    environment:
      MYSQL_HOST: mysql
      MYSQL_USER: root
      MYSQL_PASSWORD: secret
      MYSQL_DB: todos
      
    # 의존성 설정(db가 먼저 생성된 후에 app이 생성)
    depends_on:
      - db
      
    # 오류가 나면 바로 다시 시작
    restart: always 
  
  # 데이터베이스 설정
  db: 
    image: mariadb:10.5
    
    # 볼륨 설정 (호스트:컨테이너)
    # 도커 볼륨 설정
    volumes: 
      - todo-mysql-data:/var/lib/mysql
    environment: 
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: todos

# 볼륨을 따로 생성
volumes:
  todo-mysql-data:

 

ㆍ도커 컴포즈 실행

: docker-compose up -d

 

 

 

도커 컴포즈 로그 체킹

ㆍdocker-compose logs -f

: -f (로그를 실시간으로 출력)

 

ㆍdocker-compose logs 서비스_이름

: 특정 컨테이너(서비스)에 대한 로그 확인

: 도커 컴포즈 내에 선언한 service에 대한 로그 (위 예시에서 app과 db)

 

ㆍdocker-compose down

: 모든 도커 컴포즈 컨테이너 제거

 

 

 

 

 

Refference

 

12장. Docker-Compose

💻 Microsoft Docker Compose 사용여러 개의 컨테이너가 하나의 애플리키에션으로 동작할 때 이를 테스트하려면 각 컨테이너를 하나씩 생성해야 한다. 예를 들어 웹 애플리케이션을 테스트하려면 웹

velog.io

 

Docker 설치 및 Docker-Compose 설치

Docker란? IT 소프트웨어인 "Docker”는 Linux® 컨테이너를 만들고 사용할 수 있도록 하는 컨테이너화 기술입니다. 오픈소스 Docker 커뮤니티는 모든 사용자가 무료로 이점을 얻을 수 있도록 이러한 기

teichae.tistory.com

 

Centos7에 도커, 도커컴포즈 설치하기

설치환경  - OS : CentOS Linux release 7.9.2009  - 커널버전 : 3.10.0-1160.el7.x86_64  - Docker Version : 20.10.3  - Docker Compose Version : 1.28.2 Docker 저장소 설정 ### Docker 저장소 설정 $..

s-jg.tistory.com

 

300x250
728x90