Docker 설치 및 docker image tensorflow/py3/jupyter 사용해서 jupyter notebook 켜보기

2019. 8. 15. 22:25개발/Docker

728x90

으음 도커까지 해야 할 줄 몰랐지만, 현재 작업하려는 환경이 도커 안에 jupyterhub 환경인데,

 

Flask를 켜고 싶은데, 도저히 불가능한 것 같아서.... 해야한다면 새로 도커 환경을 만들고 Flask를 띄워야 할 것 같아.

 

기초부터 공부를 시작한다..

(기초만 파다가 그냥 끝나겠다...ㅠㅠ)

 

https://hiseon.me/linux/ubuntu/install-docker/

 

우분투에서 docker 설치 방법 - HiSEON

우분투에서 docker 설치 방법 우분투 16.04 또는 우분투 18.04 버전에서 도커 docker-ce 버전을 설치하는 방법을 설명드립니다. 그리고 여러버전의 CUDA Toolkit을 사용할 수 있도록 nvidia-docker를 추가적으로 설치하는 방법에 대해 설명드립니다.

hiseon.me

일단 위에 있는 방법대로 설치를 쭉 하니 잘됬다.

내가 지금 쓰는 환경은 Ubuntu 16.04이다!

 

nvidia-driver docker는 일단 설치를 안 했다 

 

일단 명령어를 잘 몰라서 여러 가지를 막 시도했었다.

 

일단 image는 나와 지금 상황이 맞을 것 같은 medium을 찾아서 하였다. ( 2017이라서 tensor flow 버전이 1.1.0이었다...)

 

https://medium.com/@jinhee_jang/docker%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-python-%EA%B3%BC-tensorflow-%ED%95%99%EC%8A%B5%EC%9D%84-%EC%9C%84%ED%95%9C-%ED%99%98%EA%B2%BD%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0-d93fbc 99e154

 

Docker를 이용하여 python 과 tensorflow 학습을 위한 환경구성하기

동기: 취미로 coding 및 machine learning 을 공부하는 과정에서 2대 이상의 컴퓨터를 번갈아 사용하는데 컴퓨터 간의 환경을 통일하고자 docker를 이용하려합니다.

medium.com

일단 이미지를 가져오자

docker pull dash00/tensorflow-python3-jupyter

 

여기서 나의 환경은 고정 아이피로 진행되다 보니 여러 실패를 하였다! 그래서 열심히 검색!

 

https://codeday.me/ko/qa/20190318/54729.html

 

Docker 컨테이너에 정적 IP 할당 - 코드 로그

Docker 컨테이너를 시작할 때 정적 IP 172.17.0.1을 할당하려고합니다. 나는이 컨테이너가 2122 포트를 수신하도록이 컨테이너의 ssh 포트로 2122 포트를 사용합니다. sudo docker run -i -t -p 2122:2122 ubuntu 이 명령은 172.17.0.5와 같은 임의의 IP를 가진 Docker 컨테이너를 실행하지만 특정 IP를 컨테이너에 할당해야합니다. 다음 쉘 스크립트는 고급 네트워크 설정에서 Docker 문서를 참조합

codeday.me

그래서 이렇게 network를 만들었다. subnet은 다들 약간 저런 수로 이루어져 있던데 왜 저렇게 하는지는 모르겠다 ㅎ

docker network create --subnet=172.18.0.0/16 mynet
## 단순 예시
docker run --net mynet --ip 172.18.0.22 -it ubuntu bash

그리고 run을 해준다.

docker run  --ip [고정아이피] --name py3 -p 1111:1111 -p 1112:1112 -it dash00/tensorflow-python3-jupyter  bash

처음에 이 명령어들은 다 뭔 소릴까 하다가 깨달은 것은

  • -p는 어떤 포트를 쓸지 지정하는 것 같다. 그래서 여기서 저렇게 하면 1111 , 1112 2개를 사용할 수 있는 것 같다.(아닐 수도)
  • --name 이미지 run 한 거 이름 지정해주기 나중에 $ docker start py3  $ docker attach py3 하면 다시 들어가진다.
  • -it : 잘 모르겠지만 터미널 입력을 위해 필요하다니 필수!
  • -v : host와 container의 디렉터리를 연결(마운트!)
  • --ip 고정 아이피 넣어주는 것

 

https://nicewoong.github.io/development/2017/10/09/basic-usage-for-docker/

 

[Docker] Docker 기본 사용법 정리 - nicewoong

Docker 사용법 (Linux에서) Reference 를 보고 직접 따라해본 것을 정리한 내용입니다. Docker 다운받기 curl -s https://get.docker.com/ | sudo sh Docker 사용 권한 주기 docker 는 기본적으로 root 권한이 필요로 되어있다고 함. sudo 명령어 없이 docker를 이요하고 싶다면 아래 커맨드로 사용자에게 권한을 줍시다. sudo usermod -aG docker your-user 그리고나서

nicewoong.github.io

docker images

 

저렇게 짠 하면 들어가진다! 

 

지금 여기에는 이미지에 tensor flow/py3/jupyter 가 그냥 깔려있다! 

 

그리고 여기서 나는 지금 이 서버에서 jupyter notebook을 쓰기 때문에  port를 8888을 쓸 수 없으니 변경해야 한다.

일단 script를 수정하기 위해 들어간 후 vim 설치!

apt-get update
apt-get install vim

그다음에 수정하는 파일로 들어가기!

vi ~/.jupyter/jupyter_notebook_config.py 

원래 저 찐한 노란색 부분이 8888이었는데 1111로 변경하였다.

 

이제 실행!

/run_jupyter.sh --allow-root --NotebookApp.token=''

접속이 되어서 확인해보니 저렇게 나온다!

-끝-

 

docker 접속 및 나가기

docker exec -it #### /bin/bash
exit

 

728x90