近期接触docker ,感觉容器真是好东西,需要什么开发环境就搞一个对应镜像,docker运行起来就可以用了,简单快捷,不让自己的本子变成一个有各种开发环境的大杂烩。搭建独立jupyter诉求主要是想着一来可以尝试用jupyter来作为自己的一个python 数据分析work space, 顺便当做笔记本不错。先是探索修改了sellpy/python3-jupyter-sklearn镜像,探索之后自己在docker hub 提交了修改过的镜像09star/python3-jupyter-sklearn-pro
本文涉及内容 :
-
修改docker镜像
-
docker镜像 -p 端口映射、-v 持久化 等使用
-
docker镜像 push回docker hub
直接使用:
不看后文,直接使用,请运行:
docker pull 09star/python3-jupyter-sklearn-pro
docker run -p 8888:8888 09star/python3-jupyter-sklearn-pro ./run.sh
详细过程:
开搞,默认已经安装了docker。
好吧这里有点儿挂羊头卖狗肉了,发现我可能最开始search镜像的时候,关键词不是jupyter而是sklearn好奇怪的脑回路。
直接 docker search sklearn 可以看到这个镜像:
sellpy/python3-jupyter-sklearn
下载吧
docker pull sellpy/python3-jupyter-sklearn
docker run sellpy/python3-jupyter-sklearn ./run.sh
直接运行镜像会报错
[C 11:24:06.450 NotebookApp] Running as root is not recommended. Use --allow-root to bypass.
需要修改一下jupyter默认配置,进入镜像吧
docker run -it sellpy/python3-jupyter-sklearn bash
运行
jupyter notebook --generate-config
之后在配置文件里修改 --allow-root 配置项 为True即可。为了可以修改生成的配置文件,安装一下vim
apt-get install vim
之后我把修改过的images 提交
docker commit 老容器名字id 新的名字(这里我用:python3-jupyter-sklearn-pro)
好了本地提交完之后,运行一下试试吧
docker run -p 8888:8888 python3-jupyter-sklearn-pro ./run.sh
访问 localhost:8888 应该能看到熟悉的 jupyter 界面啦!
进一步,1 想把文件持久化 -v 指定一个目录 2 可以以后台运行的方式 服务 -d
docker run -d -p 8888:8888 -v 主机目录:镜像内部目录 python3-jupyter-sklearn-pro ./run.sh
这样就可以将jupyter的笔记本都持久化到主机目录,方便使用,同时后台运行。需要看日志的话:
docker logs -f 运行镜像ID(如: 012c7472ebd94b5e0a4d0112a3ea3efdff599cc941d23d9cfb668b1f67317e7f)
最后可以将自己修改的镜像push 回docker hub分享出去。
docker push 09star/python3-jupyter-sklearn-pro
网友评论