본문 바로가기
Tech/Docker,K8S,CICD

Docker-Compose 기본 설명

by Dog발자. 2021. 3. 3.
반응형

내가 이해하는 docker-compose 는 간단하다.
한번에 여러 docker image 를 빌드하고 올리고 싶을때 쓰는 docker 확장 명령어 라고 생각한다.
나는 이기능 이외에 써본 적은 없다. 한번 써본 후 바로 Kubernetes로 넘어갔다.

docker-compose 명령어

docker-compose 명령어는 docker-compose.yml 파일을 읽어서 실행한다.

 

version: '3'                                            #파일 규격 버전

services:                                               #docker image를 올릴  컨테이너 리스트
  db:                                                   #서비스의 이름
    image: postgres                                     #서비스에서 사용할 도커 이미지
    volumes:                                            #volumes에는 상대 경로 (host path : docker container path)
      - ./docker/data:/var/lib/postgresql/data
    environment:                                        #환경변수 설정 (docker run 명령어의 -e 옵션)
      - POSTGRES_DB=sampledb
      - POSTGRES_USER=sampleuser
      - POSTGRES_PASSWORD=samplesecret
      - POSTGRES_INITDB_ARGS=--encoding=UTF-8

  django:
    build:                                              #local 의 Dockerfile 을 찾아서 build 하여 이미지로 사용한다.
      context: .
      dockerfile: ./compose/django/Dockerfile-dev
    environment:
      - DJANGO_DEBUG=True
      - DJANGO_DB_HOST=db
      - DJANGO_DB_PORT=5432
      - DJANGO_DB_NAME=sampledb
      - DJANGO_DB_USERNAME=sampleuser
      - DJANGO_DB_PASSWORD=samplesecret
      - DJANGO_SECRET_KEY=dev_secret_key
    ports:                                              #서비스 port 설정 (docker run 명령어의 -p)
      - "8000:8000"
    command:                                            #docker run으로 앱 컨테이너를 실행할 때 가장 마지막에 적었던 명령어 부분입니다.
      - python manage.py runserver 0:8000
    volumes:
      - ./:/app/
$docker-compose --help          # help 명령어 - 사용 가능한 docker-compose의 모든 명령어
$docker-compose build           # docker-compose.yml 의 서비스 이미지를 build 한다.
$docker-compose up -d           # background에서 실행하기
$docker-compose logs            # logs 확인
$docker-compose ps              # ps 확인

docker-compose 공부 후

docker-compose는 그냥 한번에 빌드되고 한번에 올릴 수 있다. 정도만 알면 될 것 같다.

반응형

'Tech > Docker,K8S,CICD' 카테고리의 다른 글

Docker 로 Jenkins 설치하기  (0) 2021.03.09
Kubernetes 기본 설명  (0) 2021.03.03
Docker 기본 설명  (0) 2021.03.03

댓글