-
[Docker for ML #2] 나만의 개발환경 만들기 (Dockerfile)개발 환경/Docker 2020. 8. 28. 16:43반응형
Dockerhub에는 이미 검증된 수많은 docker image가 있다. 하지만 나의 프로젝트에서 필요한 환경을 구축하기 위해서는 dockerhub의 이미지만으로는 부족하다. 즉, 나만의 이미지를 만들어야한다. Docker에서는 Dockerfile로 가능하다.
1. Dockerfile 만들기
mkdir docker cd docker vim Dockerfile
docker라는 디렉토리를 만들고 이동한 후 Dockerfile이라는 파일을 작성한다. 디렉토리를 만드는 이유는 docker는 기본적으로 docker image를 빌드할 때 디렉토리에 있는 모든 것을 복사한다. 그래서 별도의 디렉토리에 Dockerfile을 만드는 것이다.
아래 내용을 복붙한다.
FROM tensorflow/tensorflow:latest-gpu MAINTAINER sah0322@naver.com RUN apt-get -y update RUN pip install --upgrade pip RUN pip install tensorflow_datasets pymongo sklearn pyyaml python-Levenshtein WORKDIR /opt/project
하나씩 설명하자면
- FROM
- 베이스가 될 이미지를 뜻한다. Dockerhub에서 적절한 이미지를 찾아서 이미지의 이름을 넣어주면 된다. 현재 위 예시는 tensorflow-gpu==2.3을 쓸 수 있는 이미지다.
- MAINTAINER
- 이미지를 만든 사람을 명시(옵션)
- RUN
- 명령어를 실행한다. 즉 apt-get -y update 명령어를 실행한다.
- pip 업그레이드하고
- 내가 원하는 패키지를 pip install로 설치한다.
- WORKDIR
- 컨테이너가 실행되면 /opt/project 디렉토리로 이동된다.
2. Docker image build하기
Dockerfile이 작성되었으면 docker image로 빌드해야 컨테이너를 생성할 수 있다.
docker build -t tensorflow2 . docker build -t <docker image 이름> <Dockerfile이 있는 디렉토리>
확인해보자. 아래 명령어로 현재 로컬에 존재하는 이미지들을 확인할 수 있다.
docker images
output:
REPOSITORY TAG IMAGE ID CREATED SIZE tensorflow2 latest 5568e0acfda0 3 hours ago 3.23GB hsh0322/k8s-ml model01 b16311ec26b4 3 days ago 1.43GB hsh0322/filter_v2 <none> 6cb5effca0ca 4 days ago 3.23GB
tensorflow2가 생겼다.
3. Build된 docker image로부터 컨테이너 생성하기
docker run -it tensorflow2 bash
컨테이너를 띄우고
pip list
로 잘 설치되었나 확인.
반응형'개발 환경 > Docker' 카테고리의 다른 글
[Docker for ML #4] 딥러닝 학습 시작하기 (0) 2020.08.28 [Docker for ML #3] 로컬 디렉토리와 컨테이너 마운트하기 (0) 2020.08.28 [Docker for ML #1] 설치와 기본 명령어 (0) 2020.08.28 Docker, docker-compose에 원하는 GPU만 할당하기 (0) 2020.05.21 Docker compose 원하는 log만 출력하기 (0) 2020.04.16 - FROM