< Docker로 딥러닝 실습환경 구축 >
이번에 'call for code'를 참여하면서 배운점은 Block-chain에 대한 아주 초보적인 기술적 이해, 리눅스 커널 명령어의 효용성과 더불어, docker를 통한 이미지,컨테이너 환경의 유용성이다. (ibm에서 소개하는 block0-chain tutorial 또한 로컬에서 도커를 통해 hyperledger fabric을 만들고 있었다. ) 솔직히 손에 익지 않은 기술이라 내가 이걸 써야할까?싶었는데 이번에 ML수업을 들으면서 docker로 실습환경을 구성한다는 이야기를 들었다. 수업 조교님께서 관련 내용들을 설명해주셨는데 솔직히 기억은 나질 않는다;;
여차저차 해서 ML코드를 작성하는데 유용한 docker image가 있다는 소식을 듣고 여기저기 구글링을 한 결과, 'DEEPO' 라는 것을 발견했다!
먼저 현재 도커를 오염시키고 있는 불필요한 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정도가 되는 듯 하다.
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에 컨테이너 외부에서 접속할 수 있게 된다!!
'[DevOps] > [Docker]' 카테고리의 다른 글
[Docker] Buildx: Multi-Arch images 빌드하기 (linux/amd64, arm64) (0) | 2021.10.10 |
---|---|
[Docker] 이미 실행한 컨테이너 포트포워딩 재설정하기 (1) | 2021.10.05 |
[Docker] 컨테이너 인프라를 위한 DevOps 환경 구축-3.Docker volume(feat. 정보산업진흥원) (0) | 2020.10.13 |
[Docker] 컨테이너 인프라를 위한 DevOps 환경 구축-2.Docker Command(feat. 정보산업진흥원) (0) | 2020.10.13 |
[Docker] 컨테이너 인프라를 위한 DevOps 환경 구축-1.개요와 설치(feat. 정보산업진흥원) (0) | 2020.10.13 |