본문 바로가기
Commands/docker

docker-compose.yaml 알아보기

by 꼰대코더 2023. 12. 9.

docker-compose 는 시스템을 구성하는 Dockerfile 들의 build 와 container 들의 start, stop 일련의 작업들을 간편하게 해주는 이외에 네트웍의 공유등의 편의를 제공해 준다.

샘플 폴더, 화일의 구성

 
── web
    ├── app.py
    ├── Dockerfile
    └── requirements.txt
── docker-compose.yaml
 

docker-compose.yaml

   version "3.8"
 
   services:
      redis:
            image: redislabs/redismod
            ports:
               - '6379:6379'
            restart: always
 
      web:
            image: yaho/web:1.0
            build:
               context: ./web
               dockerfile: Dockerfile
            ports:
               - "8000:8000"
            restart: always
            volumes:
               - .:/code
            depends_on:
               - redis
 
services 서비스로서 redis 와  web 이 정의되어 있다.
redis dockerhub 에 등록되어 있는 redis 이미지를 사용한다.
image는 redislabs/redismod 를 사용
호스트PC 포트6379와 container포트6379를 연결시킨다. 
web flask 어플리케이션 서비스
image docker build 시의 -t 옵션과 같은 이미지의 이름을 정의한다.
build image생성의 docker build 역할
context :  Dockerfile 이 있는 폴더의 상대 패스
dockerfile: Dockerfile (주로 커스텀화일명을 사용시에 명시)
volumes 호스트PC의 폴더와 container 내의 지정폴더를 연결시킨다.
즉,container 내에서 호스트PC 폴더에 읽고 쓰기가 가능하다.
depends_on 리스트업된 서비스보다 늦게 해당 서비스는 시작된다.
시작되는 순서가 중요할 때 사용.

 

$ docker-compose build

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
yaho/web           1.0       d3e7f2099862   7 seconds ago   62.6MB

※ redis 서비스는 이미지로서 dockerhub 서버에 존재하기 때문에 생성될 필요가 없다. 
     docker-compose up 시 서버로 부터 다운로드되어 로컬에 image 가 저장된다.

 

다양한 docker-compose 의 샘플 보기 

'Commands > docker' 카테고리의 다른 글

docker / docker-compose.yml 최종 정리  (0) 2023.12.14
docker-compose 개발 결과물을 서버에 릴리스  (1) 2023.12.09
Dockerfile 알아보기  (0) 2023.12.07
docker-compose 명령어  (1) 2023.12.07
(docker) 기본 사용 명령  (0) 2023.08.11