用Dockerfile生成鏡像
FROM daocloud.io/ubuntu
RUN apt-get update
ADD Anaconda3-4.2.0-Linux-x86_64.sh /tmp/
EXPOSE 8888
這里是使用daocloud的ubuntu鏡像贸诚,國內(nèi)這個比較快矾瑰,并且把本地的anaconda文件拷貝到docker里面衷佃,因?yàn)檫@個文件比較大欺冀,用docker下需要很久侈离,這樣下好了拷貝過去比較快试幽。最后暴露8888端口來提供jupyter notebook的服務(wù)。
用commit更新鏡像
因?yàn)榘惭banaconda時候要有多次選擇卦碾,直接在Dockerfile里面寫不太方便铺坞,所以先按照上步建立好鏡像,之后再手動安裝anaconda洲胖,之后退出docker济榨,commit修改。
用安裝過anaconda之后的鏡像啟動jupyter notebook服務(wù)
sudo docker run --name myjupyter -d -p 8888:8888 conda-env sh -c "/root/anaconda3/bin/jupyter notebook --ip=172.17.0.2 --no-browser"
conda-env是鏡像的名字
注意后面執(zhí)行命令的地方绿映,要用sh去執(zhí)行擒滑,不能寫成類似這種:
sudo docker run --name myjupyter -d conda-env /root/anaconda3/bin/jupyter notebook --ip=172.17.0.2 --no-browser
如果寫成這種會導(dǎo)致jupyter的kernel反復(fù)重啟根本沒法用
添加路由
網(wǎng)絡(luò)拓?fù)涫莇ocker跑在虛擬機(jī)里面,docker的ip是172.17.0.2叉弦,虛擬機(jī)是ubuntu丐一,橋接ip是192.168.181.101,宿主機(jī)是windows淹冰。
現(xiàn)在要求windows能訪問docker提供的jupyter服務(wù)库车,所以需要有到docker的路由。
首先在windows上ping 192.168.181.101榄棵,可以通凝颇,這說明宿主機(jī)到虛擬機(jī)網(wǎng)絡(luò)是ok的潘拱;
再在ubuntu上ping 172.17.0.2疹鳄,可以通,說明虛擬機(jī)到docker網(wǎng)絡(luò)也ok芦岂;
但是從宿主機(jī)上ping 172.17.0.2 不通瘪弓,所以需要在宿主機(jī)上增加到docker的路由:
route add 172.17.0.2 mask 255.255.255.255 192.168.181.101
這表示到docker的目的ip的網(wǎng)關(guān)是192.168.181.101
添加好之后再ping 172.17.0.2,還是不通禽最,原因是ubuntu的防火墻擋住了腺怯,所以要關(guān)掉:
sudo ufw disable
之后就ok了
最后在windows瀏覽器上打開172.17.0.2:8888,就可以看見jupyter notebook