docker_docker安装jupyter采坑历程

背景:发现自己电脑配置不够,在进行模型参数调优时基本进行不下去了。计划使用云服务器,由于自己只是用来跑模型。所以按需计费最为合适。考虑到每次使用都需要部署开发环境,索性用docker实现。这样每次部署可以省去很多软件安装和部署工作。留下过程和采坑经历。供大家借鉴。
个人系统:ubuntu16.04

1,安装系统默认版本docker


输入Y,安装好后
输入:docker –version,检查是否安装成功。

2,尝试安装最新版本docker

了解到ubuntu16.04自带的docker源中的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源列表

1
2
3
4
$ 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

20171219080530688

我采用的是:# apt-get -u -y upgrade lxc-docker 安全升级 的方式升级旧版的。

3,新版docker安装后使用

悲剧,发现无法下拉镜像。目测docker安装有问题,


注意上面2截图。百度了cann’t connect to the docker daemon **

4,新版无法使用网上解决方案

a,
需要让你的用户和docker同属于一个组(docker所在的组名一般为docker),可以用 usermod 命令添加到docker组
sudo usermod -aG docker rjf611
然后登出用户 ctrl+d
重新登陆
再运行一下 docker version
依然搞不定,怎么办?虽然喜欢使用较新版本,但是如坑太多,还是用稳稳的版本吧,自己并不打算深入研究docker,时间有限,不折腾了,卸载旧版,安装系统默认的版本。
sudo apt-get autoremove lxc-docker
sudo apt install docker.io

5,使用系统默认版本docker,pull镜像过慢的问题(使用阿里云提供的加速服务)

打开阿里云docker镜像仓库,然后用自己的阿里账号登录,找到“加速器”,会有给自己的专属加速器。再用页面的提示开启加速即可!地址教程:https://cr.console.aliyun.com/#/accelerator,具体如下:
针对Docker客户端版本大于1.10的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker  
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["你的专属加速地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

上面这一段代码都是阿里云自动生成的,你只需要copy到自己终端中执行就ok了,阿里云 so 贴心

6,下载安装好jupyter和常用套件的docker镜像

docker pull dataquestio/python2-starter(如果习惯使用python3则将左侧python2换成python3即可)
有点大,1.9G,可根据下载速度预估需要时间。

7,启动

完整的运行命令是类似这样的:

1
docker run -d -p 8888:8888 -v /home/vik/notebooks:/home/ds/notebooks dataquestio/python3-starter

你应该将/home/vik/notebooks更改为你用于存储文件的地址。另外,应该把dataquestio/python2-starter更改为自己喜欢的docker镜像。
执行docker run命令将会创建一个Docker容器。这是与你的本地机器相隔绝的,也可以把它看作是一台单独的电脑。在容器内部,会运行一个Jupyter notebook服务器,并可以让我们使用许多数据科学工具包。
另外,docker run命令也会在终端打印出容器的编码container id ,在通过其他docker容器对该容器进行修改时,就必须要使用这个编码。

8,参考文章

https://segmentfault.com/a/1190000007448177
http://www.linuxidc.com/Linux/2015-02/113784.htm
http://blog.csdn.net/lincyang/article/details/44156895
http://geek.csdn.net/news/detail/51199
http://www.leesven.com/2338.html
https://linux.cn/article-6644-1.html
https://www.cnblogs.com/xhyan/p/6593075.html
http://blog.csdn.net/xiangxianghehe/article/details/70666955

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×