MLOps_3

ilysm96·2023년 4월 12일
0

Docker 컨테이너 관리 - 이미지 다루기

왼쪽: 레이어를 쌓아가며 이미지를 만들어 내는 것
오른쪽: 컨테이너

도커 이미지 레이어 확인 방법

도커 파일 없이 이미지 생성

docker run -it --name my-ubuntu ubuntu:latest #이 명령어를 통해 컨테이너 내부로 들어옴
echo "hellow ubuntu" > my_file #hellow ubuntu 라는 파일을 만들어줌
control + p + q # 명령어 저장 및 컨테이너 종료하지 않고 빠져나옴
docker commit -a hwkim -m "Add my_file" my-ubuntu my-ubuntu:v1.0.0 # 1.0.0버전 새로운 이미지 생성

도커 파일 이용한 이미지 생성

  • 이미지를 빌드할때 지시어들이 순차적으로 실행이 됨
FROM node:12-alpine
RUN apk add --no-cache python3 g++ make
WORKIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]

  • 위와 같이 입력 후 컨트롤+X를 누르고 저장하고 나감

  • nano dockerfile_hi을 입력 후 위 지시어들을 입력하면 됨

  • 이미지 만들 때 build 사용

  • docker build -t my-app:v1 ./ # 현재 디렉토리를 빌드 컨텍스트로 my-app:v1 이미지 빌드

  • docker build -t my-app:v1 -f dockerfile_hi # -f 옵션을 통해 build 할 dockerfile을 지정 (위에서 nano dockerfile_hi이라고 지정했으므로 dockerfile_hi로 설정)

Build Context 및 dockerignore

  • 포함할 일이 없는 경우 dockerignore를 사용해서 특정 이미지 빼고 사용가능

Dockerfile 문법

  • 지시어들 설명
    LABEL: 이미지 만들 때 사용하는 메타데이터
    EXPOSE : 도커 런 명령어를 통해 컨테이너를 만들 때 포트에 대한 문서화 용도
    RUN : 중간중간 install 등 실행

이미지 압축파일로 저장 및 불러오기

이미지를 공유하고자 할때 tar파일로 내리고 받고 할 수 있음.

실습하기


--------tensorflow 이미지를 가져와서 컨테이너 실행 후 디바이스 목록 확인하기-----
docker run -d -it -p 8989:8989 -v $(pwd):/user --rm tensorflow/tensorflow
python
from tensorflow.python.client import device_lib
device_lib.list_local_devices()

강사님 풀이

--------miniconda3 이미지를 가져와서 컨테이너 실행 후 pandas, numpy 버전 확인하기-----
docker run -d -it -p 8989:8989 -v $(pwd):/user --rm continuumio/miniconda3
pip install pandas
pip install numpy
python
import pandas
pandas.version
import numpy
numpy.version
exit()

--------앞서 만든 컨테이너에서 jupyter notebook 실행하기-----------
pip install jupyter

jupyter notebook --no-browser --allow-root --ip=0.0.0.0 --port=8989

컨테이너 생성하고 필요한 것들을 내부에서 수행하였음

도커파일 기본 명령어


  • copy에서 왼쪽은 호스트 오른쪽은 컨테이너
  • cmd 뒤에 커맨드를 컨테이너가 시행될때 실행하는 것을 명시하는 명령어


간단한 도커파일 작성하기

Docker build from Dockerfile

FROM python:3.9
LABEL version, description
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install python3-pip -y
WORKDIR /data/app

docker build -t my-image:latest ./blue/
docker images
docker run -it -d --name my-cont my-image
docker ps
docker exec -it my-cont bash

RUN 말고 COPY나 ADD와 같이 다른 것도 사용 가능하다

2. 파이썬 패키지를 포함한 이미지 만들기
# Dockerfile 생성

FROM python:3.9
LABEL version, description
RUN apt-get update -y
RUN apt-get upgrade -y
RUN apt-get install python3-pip -y
WORKDIR /data/app
COPY requirements.txt /data/app
RUN pip install -r requirements.txt

# 해당 이미지를 사용해 컨테이너 실행
docker build -t my-image:latest ./db/
docker run -it -d --name my-cont my-image
docker exec -it my-cont bash
pip freeze # 설치된 패키지 확인하기

docker build -t my-image:latest ./db/

  • requirements.txt를 따로 생성해준다.

-이와 같이 requirements에 필요한 패키지와 버전들을 적어 전달하면 됨

4. 머신러닝 모델 실행 이미지 만들기

Docker compose

  • 기존 명령어를 통해 컨테이너를 실행하는 행위들을 yaml 파일을 이용해서 명시적 관리 가능


Docker compose 명령어


profile
안녕하세요 반갑습니다!

0개의 댓글