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 가 저장된다.
'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 |