MLOps

[MLOps] 5. 도커 Compose로 MLflow 시작하기

mlslly 2024. 4. 17. 23:10

도커 Compose란? 

: 복잡한 명령 arguments, 다수 컨테이너를 처리해야 할때 활용

- 도커 명령어들을 코드로 관리할 수 있다.

- 여러 컨테이너들의 실행 순서를 지정할 수 있다.

- 여러 컨테이너 간의 볼륨 및 네트워크를 관리할 수 있다.

 

앞서 도커에 대한 실습들에서는, 도커 파일 생성, 이미지 빌드, 실행 및 서버 연결을 한줄한줄 터미널에 command line으로 넣었음. 

(이전 포스트들 참고)

https://ysryuu.tistory.com/4

 

[MLOps] 2. 도커 사용 실습 - 이미지 build 및 .py파일 재현

1. 설치된 패키지 확인하기 $pip3 freeze 설치된 패키지들 및 버전을 확인할 수 있다. 2. 도커 설치하기 나는 맥북을 사용중이라 아래 사이트에서 맥용 데스크탑 버전을 다운 받았다. https://docs.docker.c

ysryuu.tistory.com

https://ysryuu.tistory.com/6

 

[MLOps] 4. MLflow 시작하기 (feat.도커)

1. 로컬에서 MLflow 시작하기 1) 터미널에 아래 코드로 설치함 pip3 install mlflow 2) 호스트에 자기 자신의 IP를 할당하라고 명령 $ mlflow server --host 0.0.0.0 혹시 나처럼 'ModuleNotFoundError: No module named 'pkg_reso

ysryuu.tistory.com

 

그러나 이렇게 단순한 실습 말고, 훨씬 더 복잡한 처리와 다수의 컨테이너를 처리해야 하는 상황에서는 

통합된 실행방식이 필요할 것. 이때 필요한 것이 도커 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 강의를 참고하여 작성함