Docker란?
- Docker는 개발자가 컨테이너를 빌드, 배포, 실행, 업데이트, 관리할 수 있는 오픈 소스 플랫폼
- 작업하는 동안 컨테이너를 쉽게 공유하고 모든 참여자가 동일한 환경에서 작업
- 컨테이너의 수명 주기를 관리하기 위한 도구와 플랫폼을 제공하여 애플리케이션의 배포와 관리를 용이하게 함
docker는 가상머신과 달리 커널을 공유해서 사용함
docker client
: 도커 사용자가 도커와 소통하는 기본적인 방법docker_host
: 도커가 띄워진 서버이며, 컨테이너와 이미지를 관리함docker daemon
: 도커 엔진이며 도커의 api 요청을 듣고 이미지, 컨테이너, 네트워크 등 도커의 객체를 관리함docker registry
: 도커 이미지 저장소이며 docker pull 또는 docker run 명령어를 사용하면 구성된 레지스트리에서 필요한 이미지를 가져옴docker image
: Docker Image를 docker run 명령어를 실행시키면 Docker Container 시킬 수 있으며 다른사람과 공유가 가능docker container
: Docker API 또는 CLI를 통해 컨테이너를 생성, 시작, 중지, 이동, 삭제할 수 있으며 호스트와 다른 컨테이너로부터 격리된 시스템 자원 및 네트워크를 사용할 수 있는 독립된 공간(프로세스)이 생성됨
Mlflow docker image
- cloud9 ide에서 dockerfile 생성
# Use a base image with the desired Python version
FROM python:3.8
# Set the working directory inside the container
WORKDIR /app
# Install MLflow and any additional dependencies
RUN pip install mlflow==2.5.0
# Expose the default MLflow port (change it if needed)
EXPOSE 5000
# Set the default command to run MLflow server
CMD ["mlflow", "server", "--host", "0.0.0.0"]
- Docker 이미지를 빌드
docker build -t mlflow-image .
- docker images 확인
- mlflow Repository 생성
- push command로 aws cli login
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin {user_id}.dkr.ecr.{resion}.amazonaws.com
- 도커 이미지를 빌드
docker build -t mlflow .
- 빌드가 완료되면 이미지에 태그를 지정하여 이 리포지토리에 푸시할 수 있습니다
docker tag mlflow:latest {user_id}.dkr.ecr.{resion}.amazonaws.com/mlflow:latest
- 이미지를 새로 생성한 AWS 리포지토리로 푸시합니다.
docker push {user_id}.dkr.ecr.{resion}.amazonaws.com/mlflow:latest
ECR에 있는 image Pull
docker pull {user_id}.dkr.ecr.{resion}.amazonaws.com/mlflow:latest
image Delete
aws ecr batch-delete-image --repository-name mlflow --image-ids imageTag=latest
CMD / Entrypoint
CMD | Entrypoint |
---|---|
docker run 명령 내에 명시된 매개변수가 있는 경우 Daemon에서 무시 | 명령어는 무시되지 않고 대신 명령의 인수로 취급하여 매개변수로 추가 |
사용자가 CLI에 인자를 입력하지 않을 때 실행할 기본 프로그램을 지정하는 것 | 컨테이너가 시작될 때 필수적으로 특정 명령을 실행해야 하는 경우 |
참고링크
반응형