도커 Compose란?
: 복잡한 명령 arguments, 다수 컨테이너를 처리해야 할때 활용
- 도커 명령어들을 코드로 관리할 수 있다.
- 여러 컨테이너들의 실행 순서를 지정할 수 있다.
- 여러 컨테이너 간의 볼륨 및 네트워크를 관리할 수 있다.
앞서 도커에 대한 실습들에서는, 도커 파일 생성, 이미지 빌드, 실행 및 서버 연결을 한줄한줄 터미널에 command line으로 넣었음.
(이전 포스트들 참고)
그러나 이렇게 단순한 실습 말고, 훨씬 더 복잡한 처리와 다수의 컨테이너를 처리해야 하는 상황에서는
통합된 실행방식이 필요할 것. 이때 필요한 것이 도커 Compose이다.
도커 Compose 실습하기
1. 도커 Compose 의 yaml파일을 만든다.
<docker-compose.yaml 파일 내용>
version : "3"
services:
mlflow-server:
build:
context: .
dockerfile: Dockerfile
ports:
- 5001:5000
- version : 실행할 파일의 버전을 의미
- service : compose에 묶일 서비스들을 의미함. 하나의 서비스는 곧 하나의 컨테이너임
- mlflow-server : 사용할 서비스의 이름
- build : build할 이미지의 정보들을 입력함
- context : 도커 파일이 있는 경로. 동일 폴더 내이므로 . 으로 처리
- dockerfile : 도커 파일의 파일명
- ports : 사용할 포트를 입력
2. 도커 Compose를 실행한다
$ docker compose up -d --build
-d : 는 detached 모드로 실행한다는 뜻 (백그라운드에서 컨테이너 실행시키고 유지)
3. 실행 확인
데스크탑 포트로 지정한 https://http://0.0.0.0:5001/ 로 들어가면 MLflow 서버 실행된 것을 확인 가능
추가1 - 도커 Compose의 로그를 확인하기
$ docker compose logs
추가2- 도커 Compose 종료하기
$ docker compose down
* 프로그래머스의 마키나락스 MLOPS 강의를 참고하여 작성함
'MLOps' 카테고리의 다른 글
[MLOps] 7. MLflow 로깅 실습 (1) | 2024.04.18 |
---|---|
[MLOps] 6. MLflow 로깅 방법 (1) | 2024.04.18 |
[MLOps] 4. MLflow 시작하기 (feat.도커) (0) | 2024.04.17 |
[MLOps] 3. 실험 관리 (0) | 2024.04.17 |
[MLOps] 2. 도커 사용 실습 - 이미지 build 및 .py파일 재현 (1) | 2024.04.17 |