Jupyter notebook은 파이썬 프로그램에 있어 유용하면서 기본적인 툴이다.
많은 사람들이 jupyter notebook에 익숙해 있고, 구글 colab에서도 비슷한 notbook 형식의 툴을 제공하고 있다.
그렇기 때문에 docker를 통해 jupyter notebook을 연동하는 것이 유용할 것이라 생각 된다.
먼저 docker run을 할 때에 port를 지정해 줘야 하는데, 이는 '-p PORT:PORT' 옵션을 통해 줄 수 있다.
예를 들어 8888포트에 연결하여 ubuntu를 실행한다고 하면,
sudo docker run -it -p 8888:8888 ubuntu
와 같이 실행할 때 옵션을 주면 된다.
그 다음, container의 IP를 확인해야 하는데, 이는 container 밖에서 확인하는 것이 편하다.
새로운 터미널 창을 열고 다음을 입력하면 리스트가 쭉 나온다. 여기서 IPAddress를 찾는다.
여기서 <CONTAINER ID>는 container의 ID를 입력하면 된다.
예를 들어 docker run을 할 때에 --name 항목을 주어 이름을 설정 했다면, 그 이름을 적고, 아니라면 sudo docker ps -a 를 통해 이름 또는 ID를 확인하여 입력한다.
sudo docker inspect <CONTAINER_ID>
그 다음 docker container 안에서 jupyter notebook을 실행 시킨다. 단, 실행 시킬 때 위의 과정에서 찾은 IPAddress를 입력해 준다.
또한 --allow-root 옵션을 안주면 경고가 뜨므로 이 역시 준다.
jupyter notebook --ip <IP_ADDRESS> --allow-root
그러면 서버처럼 jupyter notebook이 작동되어진다.
많은 사람들이 jupyter notebook에 익숙해 있고, 구글 colab에서도 비슷한 notbook 형식의 툴을 제공하고 있다.
그렇기 때문에 docker를 통해 jupyter notebook을 연동하는 것이 유용할 것이라 생각 된다.
먼저 docker run을 할 때에 port를 지정해 줘야 하는데, 이는 '-p PORT:PORT' 옵션을 통해 줄 수 있다.
예를 들어 8888포트에 연결하여 ubuntu를 실행한다고 하면,
sudo docker run -it -p 8888:8888 ubuntu
와 같이 실행할 때 옵션을 주면 된다.
그 다음, container의 IP를 확인해야 하는데, 이는 container 밖에서 확인하는 것이 편하다.
새로운 터미널 창을 열고 다음을 입력하면 리스트가 쭉 나온다. 여기서 IPAddress를 찾는다.
여기서 <CONTAINER ID>는 container의 ID를 입력하면 된다.
예를 들어 docker run을 할 때에 --name 항목을 주어 이름을 설정 했다면, 그 이름을 적고, 아니라면 sudo docker ps -a 를 통해 이름 또는 ID를 확인하여 입력한다.
sudo docker inspect <CONTAINER_ID>
그 다음 docker container 안에서 jupyter notebook을 실행 시킨다. 단, 실행 시킬 때 위의 과정에서 찾은 IPAddress를 입력해 준다.
또한 --allow-root 옵션을 안주면 경고가 뜨므로 이 역시 준다.
jupyter notebook --ip <IP_ADDRESS> --allow-root
그러면 서버처럼 jupyter notebook이 작동되어진다.
이제 바깥의 PC의 웹 브라우저(크롬, 사파리 ...)를 열고, IP와 아까 지정해준 port (위의 예에서는 8888)을 입력해 준다.
https://localhost:8888
그렇게 하면 jupyter notebook 창이 뜨는데, 여기서 token을 요구하게 된다.
https://localhost:8888
그렇게 하면 jupyter notebook 창이 뜨는데, 여기서 token을 요구하게 된다.
token값은 container 안에서 jupyter notebook을 실행했을 때 뜨는 문구 중에 숨어 있다.
문구를 잘 보다 보면 token=2c14a507ba53fb242e4e093e5a8f8f3420a1832ceead0cec 이런식의 부분이 있는데, 이 '2c14a507ba53fb242e4e093e5a8f8f3420a1832ceead0cec ' 부분이 token 값이다.
문구를 잘 보다 보면 token=2c14a507ba53fb242e4e093e5a8f8f3420a1832ceead0cec 이런식의 부분이 있는데, 이 '2c14a507ba53fb242e4e093e5a8f8f3420a1832ceead0cec ' 부분이 token 값이다.
이를 복사해서 웹 브라우저의 token에 입력한다.
완료.
완료.