1. 程式人生 > >基於docker的伺服器端使用jupyter notebook的方法

基於docker的伺服器端使用jupyter notebook的方法

       目前剛接觸了linux伺服器以及docker,需要在上面跑些python的程式。但是伺服器沒有視覺化的工具,黑框框除錯起來非常麻煩,而python工具庫裡的jupyter notebook是一款強大的實時除錯工具,就想在伺服器上使用jupyter notebook。由於我是使用的docker,而網上的許多伺服器上使用jupyter notebook的教程都沒有在docker裡進行的,因此在找資料的繞了不少彎路,現在將總結的方法貼出來,希望能方便更多的朋友。

關鍵字:伺服器dockerjupyter notebook,linux

        以下的內容是主要基於我從網上找到的兩篇博文,感謝他們。

1、使用docker命令建立container

        使用docker命令建立container時,可以使用-p指令為container指定對映埠:

docker run -p 7777:8888 [other options]

        docker run 是產生容器的命令,而-p 7777:8888的意思是伺服器本身的7777埠會對映到container裡面的8888埠,前面的7777可以更改為別的數字,只要別和伺服器自身已經使用的埠產生衝突就好,後邊的8888最好別更改,因為8888是jupyter notebook的預設埠,若是這裡改動了8888,就要相對應更改。

2、在container裡安裝jupyter notebook

        剛生成的container裡一般是沒有jupyter notebook的,需要我們去下載。使用的伺服器端作業系統是Ubuntu 16.04LTS,可以使用下面的步驟來下載:

       下載jupyter notebook

pip install jupyter notebook

3、配置遠端訪問jupyter

3.1、生成密碼

在ubuntu的命令列裡輸入ipython開啟ipython,(沒有的話,輸入python也可以)

ipython

在python命令列裡分別輸入:

from notebook.auth import passwd
passwd()

輸完之後,設定一個密碼,會生成一個sha1的祕鑰會有如下的結果:

這時候把sha1祕鑰儲存下來,然後退出ipython命令列:

quit()

3.2、生成jupyter notebook的配置檔案

jupyter notebook --generate-config

這時候會生成配置檔案,在 ~/.jupyter/jupyter_notebook_config.py

3.3、修改配置檔案

修改要用到vim,若是沒有,先執行:

apt-get update
apt-get install vim

安裝好vim之後,執行一下程式開啟配置檔案:

vim ~/.jupyter/jupyter_notebook_config.py

加入如下內容,其中sha1那一串祕鑰是上面生成的那一串

c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha1:41e4da01dde4:e820dc9c0398eda2dc9323c9e4a51ea1228166a2'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888

8888表明要使用container的8888埠訪問jupyter,然後儲存退出。

3.4、開啟jupyter notebook

jupyter notebook --allow-root                                         

雖然在這裡看到,要求我們輸入127.0.0.1:8888來連線jupyter,但是輸入以上網址後發現找不到網頁。

這是因為docker產生的container是一個新的環境,而我們連線的是伺服器的埠,在第一步時我們把伺服器的7777埠和container的8888埠繫結在一起了,所以我們需要連線的是伺服器的7777埠。

所以在本地瀏覽器輸入

127.0.0.1:7777

輸入密碼就可以連線到伺服器端的jupyter notebook了。