기본 콘텐츠로 건너뛰기

Running Anaconda Python on Jupyter Notebook with Docker in Windows

I think there is no IDE more suitable for studying machine learning or deep learning with Python than Jupyter Notebook. However, it is so difficult to construct a Jupyter environment without crushing with the existing Python environment. So, I decided to make an only-for-deep-learning environment in the Ubuntu Docker container to avoid all annoyance. I will assume that you already installed Docker.

Environment

  • Ubuntu 17.04 LTS
  • Anaconda 5.0.0 (containing Python 3.6)

Creating Docker Container

First of all, we are going to create a Docker container.
The world is going better day after day! You can get a Docker image containing Anaconda that someone created and simultaneously make a container with the image you just downloaded just with this one-line command.
docker run -it --name jupyter -p 8000:8000 --volume /c/Users/jinai/Dropbox/HaveToLearnToRun/CSE/3_1_MachineLearning/jupyter_workspace:/root/jupyter_workspace continuumio/anaconda3 /bin/bash
It’s quite complex. So let me explain you about options.
  • -it : It’s combination of i option and t option.
    • -i : Interactive. This option makes ouput of the commands visible.
    • -t : tty. It provides terminal environment.
  • –name : alias of the container. You can start/stop/remove the container with this name.
  • -p : port. You can connect to the container with this port. First one is port of the Docker host, and second one is of Docker container. // is of Docker OS 말 되나 모르겠네…
  • –volume : You can share directory of the outer OS with the Docker container. The format of directory of the outer OS should be the format of Linux, even if it is Windows. In addition you should be care of using and not using capital letters.
  • continuumio/anaconda3 : It’s the image file that someone made and uploaded. It contains Anaconda3.
  • /bin/bash : It means you will use bash every time you start the container you just made.

Start Jupyter Notebook

And then you just have to type this to start Jupyter Notebook.
jupyter notebook --ip=0.0.0.0 --port=8000 --allow-root
Congraturations! Your Jupyter Notebook is now turned on.

Use Jupyter Notebook

So, where is our Jupyter Notebook? You may be seeing a black screen that tells you Notebook is running but there is no text editor or anything that seems like IDE. What you should do is turning on a web browser, and put this on the address bar.
http://192.168.99.100:8000/?token=[token_value]
You can find your token_value in here.
jupyter_token_in_Docker
Then, you can find your Jupyter Notebook that has Anaconda. Have a fun coding with Jupyter Notebook!
jupyter_anaconda_test

Automation

You can run jupyter notebook without wrting this long command by creating a compiled C file and register it as an alias.

Ready

Get vim and gcc.
~# apt-get install vim -y
~# apt-git install gcc -y

Creating C file

Go to home directory(~).
~# vim run_jupyter.c
#include <stdio.h>
#include <stdlib.h>

int main() {
    system("clear");
    system("jupyter notebook --ip=0.0.0.0 --port=8000 --allow-root");
    return 0;
}

Compile C file and make an object file

~# gcc -o run_jupyter run_jupyter.c

Register the object file as an alias

Open ~/.bashrc file and add this line.
alias rj='cd ~/jupyter_workspace; ~/run_jupyter'
And run this command.
source .bashrc
Now, you can run jupyter notebook by putting ‘rj’ in any directory.

댓글

이 블로그의 인기 게시물

Kotlin + NDK, OpenCV

원래 이 블로그는 영어로만 작성하려고 했었으나, 코틀린 프로젝트에서 OpenCV를 사용하는 방법에 대해 정리한 한글 블로그가 거의 없어서 이 참에 블로그 방문자 유입도 좀 늘릴 겸하여 이번 포스트는 한글로 작성하려고 한다. 절대 영어로 쓰기 귀찮아서 한글로 쓰는 게 아니다. 내가 좀 쫄보여서 그런지는 몰라도 간단한 테스트도 iterative하게 진행하는 게 마음이 편하다. 그래서 1. Kotlin 2. Java + NDK(C++) 3. Kotlin + NDK(C++) 4. Java + NDK(C++) + JNI + OpenCV 5. Kotlin + NDK(C++) + JNI + OpenCV 순으로 프로젝트를 생성하여 한 단계씩 통과시켜가며 넘어갈 생각이다. 그런데 결론부터 말하자면, OpenCV에서 Kotlin을 지원하지 않는 것으로 보인다. OpenCV의 라이브러리 폴더(OpenCV-android-sdk\sdk\native\libs\mips64)를 열어보면 libopencv_java3.so 파일은 찾을 수 있지만 libopencv_kotlin 비슷한 이름을 가진 파일은 없다. Kotlin에서 C++을 돌려봤다는 사실 정도에 만족하고 넘어가도록 하자… ㅠㅠ 환경 다음의 환경에서 진행한다. * Android Studio 2.3 * OpenCV 3.3.0 Kotlin Project 생성 먼저 안드로이드 스튜디오에서 간단한 hello world 자바코드를 생성하여 코틀린코드로 변환해보자. 그냥 처음부터 코틀린으로 만들면 되지 왜 굳이 자바코드를 변환하고 앉아있느냐 할 수도 있는데 안드로이드 스튜디오 2.3에서는 그런 기능을 제공하지 않는다. ㅠㅠ 3.0부터는 아예 코틀린이 안드로이드 스튜디오에 빌트인으로 제공되면서 처음부터 코틀린 프로젝트를 만들 수 있게 된다 카더라. 프로젝트 생성 그냥 자바 기반 안드로이드 프로젝트를 만들면 된다. 어플리케이션명을 적당히 정해주자. Company Domain은 소속된 회사이

Cooperation Tools That Support Scrum Development Process

We have to cooperate for our project, and we need to decide which tool to use. One of our mentors recommended 3 cooperation tools which support scrum board function, and suggested we learn about that tools, put into shape, and share them one another. So, to follow his order, I write this post. Scrum - Agile Software Development Process First of all, we should know what the hell the SCRUM is. I referred here  and wiki . In agile software development process, there are 3 elements that consist of it - roles, artifacts, workflow. Roles Product Owner They ponder on what they make. Scrum Master They ponder on how they make. Scrum Team They just make T_T Artifacts Product Backlog It contains general requirements. (I don't sure it is right explanation for product backlog.) User Stories It contains detail requirements. Estimates It contains the order of priority of all requirements(user stories). Workflow Iteration & Incremental Developme