摘要:及系统已经安装好的同学可以忽略这一节。源默认按装的版本不是最新版本的,需要通过添加源的方式来安装最新版本的。然后用将这个安装好的容器做成镜像。扩展如果要大数据分析,还需要安装很多大数据相关的包。
jupyter-notebook是我很喜欢的工具,搭环境稍显麻烦,其实jupyter web形式的使用方式,最好的部署方式是在云上,一次部署到哪里都可以使用,岂不快哉。现在各家云服务器还挺贵的,docker出来后,我就琢磨把jupyter-notebook放到容器中。
Docker及系统已经安装好的同学可以忽略这一节。我喜欢用ubuntu,所以host 系统是ubuntu,docker容器中的系统也是ubuntu。ubuntu apt-get源默认按装的docker版本不是最新版本的,需要通过添加源的方式来安装最新版本的docker。参考链接
#添加ubuntu apt 的https访问能力 $ sudo apt-get install apt-transport-https #将Docker官方资料库的访问Key添加到你本地系统 $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 #将docker 资料库地址添加到apt源列表 $ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" #安装 $ sudo apt-get update $ sudo apt-get install lxc-docker
Docker安装好以后就要拉一个ubuntu版本镜像,我拉的是ubuntu:14.04
docker pull ubuntu:14.04启动容器
容器是存放jupyter-notebook的地方,我们要做的是基于精简版的ubuntu镜像启动一个容器,然后在里面安装sshd这种远程登录的工具。
先让容器以交互式虚拟终端的方式启动,如果需要使用和host不同的DNS server配置,可以使用--dns参数指定DNS server,否则新启动的docker 容器会复制host的/etc/resolv.conf。
docker run -i -t ubuntu:14.04 /bin/bash
安装sshd的过程比较简单,我通常安装openssh-server
sudo apt-get install openssh-server
然后编辑它的配置文件 /etc/ssh/sshd_config,注释掉配置文件中的"PermitRootLogin without-password",再增加一句"PermitRootLogin yes"使得root用户可以远程登录。然后用将这个安装好sshd的容器做成镜像。
之后基于新镜像启动容器,用端口映射的方式,映射ssh端口到host,之后通过ssh指定端口的方式登录到docker 容器。jupyter-notebook的默认端口号是8888,也可以提前考虑,在这里多映射几个外部端口。
docker run -d -p 30001:22 --name jupyter-notebook ubuntu:14.04-sshd /usr/sbin/sshd -D安装jupyter
这个过程基本和在ubuntu系统上安装jupyter的过程是一样的,但容器中的ubuntu是个最简环境,没有安装python-dev包。
#更新apt-get环境 apt-get update #安装python dev包 apt-get install python-dev #安装jupyter pip install jupyter
安装过程需要注意的是,由于墙的原因,ubuntu的源和pip的源都换成国内的源,我ubuntu用的是网易的源,pip用的是清华的源。
使用jupyterjupyter 默认只能通过本地地址访问,要放开配置,允许jupyter远程访问。在放开远程访问时,需要设置密码,jupyter的配置文件只支持加密后的密文密码(赞一个)
#生成jupyter配置文件,这个会生成配置文件.jupyter/jupyter_notebook_config.py jupyter notebook --generate-config #使用ipython生成密码 In [1]: from notebook.auth import passwd In [2]: passwd() Enter password: Verify password: Out[2]: "sha1:38a5ecdf288b:c82dace8d3c7a212ec0bd49bbb99c9af3bae076e" #去配置文件.jupyter/jupyter_notebook_config.py中修改以下参数 c.NotebookApp.ip="*" #绑定所有地址 c.NotebookApp.password = u"刚才生成的密码" c.NotebookApp.open_browser = False #启动后是否在浏览器中自动打开 c.NotebookApp.port =8888 #指定一个访问端口,默认8888,注意和映射的docker端口对应
配置完成以后,就可以用 jupyter notebook命令把jupyter启动起来了,然后你就可以看到一个超级简洁的jupyter登录界面了。输入密码就可以开始使用jupyter了。
扩展如果要大数据分析,还需要安装很多大数据相关的包。
我用jupyter最多的还是使用pandas/scikit-learn,所以我会继续安装这两个包,大家可以根据自己需要继续安装自己想要的python包。
#安装numpy,安装过程中会有c文件的编译,可能会报些错,但不影响最终结果 pip install numpy #安装scipy,安装过程中会有c文件的编译,可能会报些错,但不影响最终结果 pip install scipy #安装matplotlib pip install matplotlib #安装pandas pip install pandas pip install scikit-learn
总体来说pip的包管理还是比较好的,除了numpy、scipy编译时报的一堆错误,整体安装过程比较顺畅。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/26751.html
摘要:采用微服务架构设计的原因很简单解放生产力。运行时服务缺少标准,各类实现区别很大,调试困难程度不一,集成测试更是难上加难。小伙伴们更进一步的互相提供帮助集成测试及单元测试,极大的释放了团队生产力。 showImg(https://dn-coding-net-production-pp.qbox.me/e205ba4f-5db9-4719-bc00-cae9823c2d74.png); ...
摘要:在更多的提供商,你会发现他们只是能根据仓库和构建镜像,你用他们的系统甚至没办法做出一个最小镜像中国的其实挺先进的,很早就推出了安全镜像的概念,让你的构建通过两步完成。好了,祝贺那些不支持多段构建的服务,帮你们追平了竞争对手。 showImg(https://segmentfault.com/img/remote/1460000009069845?w=1479&h=609); Docke...
摘要:而实际上在宿主机中也会同步启动一个进程,其在宿主机中是。如果其中的某一个容器正在执行密集型的任务,那么它就会影响其他容器的任务执行效率,导致多个容器相互影响并且抢占资源。 作者:荣幸 为什么是容器 如果问你现在最热门的服务器端技术什么?想必很多人会不假思索的说是容器! 容器技术实际上并不是一个新鲜的名词,现在大家一提到容器马上想到的就是Docker,但是容器这个词并不是Docker公司...
摘要:实现架构基于这些调查以及一些小的编写,设计出一个可定制化的在线比赛平台的架构在中我使用的是,所以这里的持久卷是的持久化卷,用来管理用户数据集和上传和访问。在管理的同时,也作为代理服务,可以直接把的内容返回给在线比赛平台。 背景最近使用科赛发现这个和jupyter长的差不多的在线比赛平台非常有趣,用户可以上传自己的数据,创建自己的项目并且可以使用交互式的笔记本, 支持实时代码,数学方程,...
摘要:实现架构基于这些调查以及一些小的编写,设计出一个可定制化的在线比赛平台的架构在中我使用的是,所以这里的持久卷是的持久化卷,用来管理用户数据集和上传和访问。在管理的同时,也作为代理服务,可以直接把的内容返回给在线比赛平台。 背景最近使用科赛发现这个和jupyter长的差不多的在线比赛平台非常有趣,用户可以上传自己的数据,创建自己的项目并且可以使用交互式的笔记本, 支持实时代码,数学方程,...
阅读 1182·2021-10-18 13:32
阅读 2218·2021-09-24 09:47
阅读 1253·2021-09-23 11:22
阅读 2384·2019-08-30 14:06
阅读 507·2019-08-30 12:48
阅读 1936·2019-08-30 11:03
阅读 457·2019-08-29 17:09
阅读 2369·2019-08-29 14:10