CS 공부/DevOps

Docker 이미지 빌드 및 배포

imsmile2000 2024. 10. 22. 11:22

Docker 이미지 빌드

  • 내가 구축한 환경을 다른 사람도 Docker 이미지를 받아 쉽게 사용할 수 있도록 이미지 빌드
  • 예시로 나의 mmdetection 모델 구축 환경을 가져옴
# 베이스 이미지로 CUDA 12.1 및 cuDNN 8이 포함된 Ubuntu 22.04 사용
FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04

# 필수 패키지 설치
RUN apt-get update && apt-get install -y \
    python3-pip \
    libgl1-mesa-glx \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# PyTorch 설치 (CUDA 12.1 지원)
RUN pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# mmengine 설치
RUN pip install --no-cache-dir mmengine==0.8.4

# openmim 설치 및 업데이트
RUN pip install --no-cache-dir -U openmim

# MMDetection 설치
RUN mim install mmdet

# yapf 설치
RUN pip install --no-cache-dir yapf==0.40.1

# 작업 디렉토리 설정 (필요에 따라 수정 가능)
WORKDIR /workspace

# 기본 명령 (원하는 스크립트나 명령어로 수정 가능)
CMD ["/bin/bash"]

 

 

Docker build

  • "mmdet" 이름으로 도커 이미지 빌드 명령어
docker build --no-cache -t mmdet .

 

 

 

Docker Hub에 이미지 업로드

  • 도커 허브에 내가 직접 만든 이미지를 올려보자
$ docker login
Your password will be stored unencrypted in /home/user/.docker/config.json.

# docker tag <로컬_이미지> <dockerhub_사용자이름>/<이미지이름>:<태그>
$ docker tag co_detr/ubuntu22.04:0.01 imsmile2000/mmdetection-ubuntu22.04:latest

# docker push yourusername/<이미지이름>:<태그>
$ docker push imsmile2000/mmdetection-ubuntu22.04:latest

# 설정 완료 후 로그아웃
$ docker logout

 

https://hub.docker.com/r/imsmile2000/mmdetection-ubuntu22.04