【Docker】Docker Image 만들기, Tensorflow-Opencv의 Container

【소개】
여러분, 안녕하세요. 오늘은 여기서 한마디라든지 필요하지 않습니다. 그럼 시작하겠습니다.

준비



우선 필요한 이미지를 만들기 위해 필요한 환경을 준비합니다.
- Docker Toolbox
- Docker Cloud

Docker Toolbox 설치



이번 기사에서는 Docker Toolbox를 이용해 하겠습니다.
Install Docker Toolbox on Windows ← 여기에서 쉽게 다운로드 할 수 있습니다.
필자는 이미 설치되어 있으므로 여기 화면이 문제없이 표시되면 성공입니다.

이미지 다운로드



타이틀에서는 이미지 만들기라고 기재했습니다만 이번은 이미 있는 Ubuntu16.04를 이용해 만들고 싶습니다.
command에 다음을 입력합니다.

command
docker pull ubuntu:16.04

이렇게하면 Ubuntu 이미지가 생성됩니다.
왜 우분투의 최신 버전인 18.04가 아니라 16.04인지 의문이 있다고 생각합니다만 실제로 18.04 버전에 환경을 설치하면 잘 되지 않았기 때문에 16.04로 했습니다. 무슨 설치인가 하면 【Ubuntu】Ubuntu16.04에 Python 환경 설치 (전반) 이쪽의 환경 구축입니다. 이것도 마찬가지로 16.04로 내려 성공했습니다.

이미지 우분투에 Python3 환경 구축



【Ubuntu】Ubuntu16.04에 Python 환경 설치 (전반)
이 설명은 이쪽의 기사에 있으므로 참고해 주세요. 그쪽이 빠릅니다. 끝나면 이 화면이 되네요.

라이브러리 설치



Opencv 환경까지의 구축은 끝나면 이번 기사도 거의 끝이 됩니다. 나중에 Python의 기본 라이브러리와 Tensorflow 또는 Opencv에 필요한 라이브러리를 설치합니다.

command
pip install tensorflow
pip install opencv_contrib_python
pip install pyqt5
pip install panda
pip install sklearn
pip install scipy
pip install torch
pip install chainer
...

사람에 의해 필요한 라일 흔들림은 전부 다르다고 생각하므로 각자 자유롭게 인스톨 해 주세요. 여기까지 할 수 있으면 다음의 작업은 이 컨테이너를 commit해 내용을 보존합니다.

※번외



여기에서는 Container를 commit하고 Docker Cloud에 Push하는 작업이 됩니다. Cloud를 통해 모든 환경에서 시간이 지남에 따라 구축할 수 있습니다.

Docker Cloud 계정 생성, 로그인



docker cloud 여기에서 무료로 바로 만들 수 있으므로 필요한 분은 만들어보세요.
저자는 이미 opencv까지 구축 완료 버전과 프로덕션 이미지를 업로드했습니다.

그리고 Docker에 로그인합니다.

command
docker login
username: ****
password: ****



COMMIT



빌드가 끝난 컨테이너를 COMMIT합니다.

command
docker commit -m "test" <コンテナID> <イメージID>:TAG

이것으로 컨테이너의 내용이 COMMIT되어 최초 pull한 ubuntu16.04 이미지와는 다른 자작의 이미지가 만들어집니다.

최초 pull한 이미지:ubuntu16.04
commit에서 만든 이미지 : sample/sample:TAG
필자의 경우라면 wbseo/tensorflow-opencv:16.04가 됩니다.

PUSH



마지막으로 만든 이미지를 클라우드에 PUSH하는 작업입니다.
우선 TAG command로 새로운 이름으로 합니다.

command
docker tag local-image:tagname new-repo:tagname

그리고 클라우드로 PUSH합니다.

command
docker push new-repo:tagname

【정리】
Virtual Box에 Ubuntu를 설치하고 그 위에 빌드하는 것보다 시간이 오래 걸리지 않고 매우 편해집니다. 거의 그렇다고 생각합니다만 같은 팀으로 작업하고 있는데 미묘하게 라이브러리의 버전이 맞지 않아서 잘못되었던 경험이라든지 없습니까. 나는 그것에 굉장히 좌절했기 때문에 이렇게 만들었습니다.

좋은 웹페이지 즐겨찾기