본문 바로가기

[DevOps]/[Docker]

[ML/Lecture] Docker로 실습환경 구축

728x90

 

< Docker로 딥러닝 실습환경 구축 >

www.docker.com

 

Empowering App Development for Developers | Docker

Learn how Docker helps developers bring their ideas to life by conquering the complexity of app development.

www.docker.com

  이번에 'call for code'를 참여하면서 배운점은 Block-chain에 대한 아주 초보적인 기술적 이해, 리눅스 커널 명령어의 효용성과 더불어, docker를 통한 이미지,컨테이너 환경의 유용성이다. (ibm에서 소개하는 block0-chain tutorial 또한 로컬에서 도커를 통해 hyperledger fabric을 만들고 있었다. ) 솔직히 손에 익지 않은 기술이라 내가 이걸 써야할까?싶었는데 이번에 ML수업을 들으면서 docker로 실습환경을 구성한다는 이야기를 들었다. 수업 조교님께서 관련 내용들을 설명해주셨는데 솔직히 기억은 나질 않는다;;

  여차저차 해서 ML코드를 작성하는데 유용한 docker image가 있다는 소식을 듣고 여기저기 구글링을 한 결과, 'DEEPO' 라는 것을 발견했다!

hub.docker.com/r/ufoym/deepo/

 

Docker Hub

 

hub.docker.com

먼저 현재 도커를 오염시키고 있는 불필요한 hyperledger 이미지들을 전부 삭제해 주었다. ( 주의!!! 이미지 강제 전체 삭제 명령어이다!!!)

 docker rmi $(docker images -a -q) -f

그리고 hub.docker.com/r/ufoym/deepo/ 여기서 deepo를 가저오기 위해 pull을 한다.

github.com/ufoym/deepo 들어가서 readme를 읽어보면 알겠지만 gpu ver. cpu ver.에 따라 install방법이 조금 다르니 본인 환경에 맞게 골라서 설치해주면 된다. 나는 cpu ver.로 설치하도록 하겠다. 용량은 대략 6GB정도가 되는 듯 하다. 

 

ufoym/deepo

Set up deep learning environment in a single command line. - ufoym/deepo

github.com

docker pull ufoym/deepo:cpu

 

docker run -p 8888:8888 -it -v ~/docker-dir/ml-lecture:/root/ml-lecture ufoym/deepo:cpu bash
  • run: 도커 실행 명령어
  • "-p 8888:8888": 컨테이너의 8888번 포트를 호스트 OS 8888번 포트로 포워드하는 옵션이다. 나중에 jupyter notebook이나 lab에서 사용하는 8888번 포트를 외부에서도 접속이 가능해진다.
  • "-it": 인터랙티브 터미널을 사용하기 위한 옵션이다.
  • "-v {host-dir}:{container-dir}": 호스트의 디렉토리를 컨테이너 내부에 공유하기 위한 옵션이다.
  • "bash": 터미널에서 어떤 쉘을 사용할 지 결정한다. bash 쉘을 통해 컨테이너를 연다.

  원래는 deepo에 jupyter lab이 기본으로 설치되어 있지 않다고 들었는데, 실행시켜보니 잘 되었다. 그리고 token을 받아오기 위해 아래 명령어를 사용한다. 

jupyter notebook list

그러면 아래와 같이 local에서 접속할 수 있는 token이 나온다. 

위의 토큰을 이용해서 localhost:8888에 접속해 로그인을 해준다.

그럼 아래처럼 jupyter lab에 컨테이너 외부에서 접속할 수 있게 된다!!

 

 

 

 

 

728x90