环境说明:使用ubuntu18.04 ,4Gpu
1、下载docker
docker官网:https://www.docker.com/
docker的官方文档:https://docs.docker.com/
https://docs.docker.com/install/linux/docker-ee/ubuntu/
![](https://img.php1.cn/3cd4a/1eebe/cd5/0d80e8a685a9a87b.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RpYW5hX1o=,size_16,color_FFFFFF,t_70)
docker的官方文档的右边这里可以找到对应系统的安装的官方教程
需要注意一下,docker也有社区版和专业版的区别的,我下载的是CE版,就是社区版
接下来是安装流程,具体的步骤详解可以参考官方文档,我这里就是操作的记录
2、卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
![](https://img.php1.cn/3cd4a/1eebe/cd5/0d80e8a685a9a87b.png)
3、使用存储库安装
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
![](https://img.php1.cn/3cd4a/1eebe/cd5/4283cd4bbba41b87.png)
4、添加Docker的官方GPG密
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
![](https://img.php1.cn/3cd4a/1eebe/cd5/8343fdbffb0056b5.webp)
sudo apt-key fingerprint 0EBFCD88
![](https://img.php1.cn/3cd4a/1eebe/cd5/b386c433a16f5497.webp)
5、设置稳定存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable
![](https://img.php1.cn/3cd4a/1eebe/cd5/e3aa5425383ba10d.png)
有点看不懂这个稳定设置
6、安装DOCKER ENGINE - 社区
sudo apt-get update
sudo apt-get install docker docker-compose
![](https://img.php1.cn/3cd4a/1eebe/cd5/0d80e8a685a9a87b.png)
7、通过运行hello-world
映像验证是否正确安装
sudo docker run hello-world
![](https://img.php1.cn/3cd4a/1eebe/cd5/6c257b6ba227cc3e.webp?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RpYW5hX1o=,size_16,color_FFFFFF,t_70)
8、NVIDIA-dockr
看看链接
https://blog.csdn.net/Diana_Z/article/details/100011628
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------重点分割线,下面是caffe安装----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
1、caffe官网的docker安装指南
https://github.com/BVLC/caffe/tree/master/docker
2、将caffe的docker镜像pull下来
sudo docker pull bvlc/caffe:gpu
![](https://img.php1.cn/3cd4a/189d8/978/7dbdf0f38ad53545.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RpYW5hX1o=,size_16,color_FFFFFF,t_70)
3、dockre权限
docker刚刚安装好的时候权限是在root下面的,所以在执行docker命令的时候需要使用sudo前缀
如果没有sudo会这样
cj1@cj1-All-Series:~$ docker pull bvlc/caffe:gpu
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/images/create?fromImage=bvlc%2Fcaffe&tag=gpu: dial unix /var/run/docker.sock: connect: permission deniedPldmU
4、修改权限
在非终端使用的doker环境下,sudo是没法输入的,所以最好是将当前用户添加到docker的组里面
参考:https://www.cnblogs.com/informatics/p/8276172.html
命令:![](https://img.php1.cn/3cd4a/1eebe/cd5/ddcc574beb16294e.jpeg)
我参考的是参考网址里面的方法二
执行效果:
![](https://img.php1.cn/3cd4a/1eebe/cd5/d34245582687a4e6.webp)
需要注意的是,这个时候你在当前的终端里面权限已经添加了
![](https://img.php1.cn/3cd4a/1eebe/cd5/02c379d60086f382.webp)
但是重新打开一个终端,权限又会消失
![](https://img.php1.cn/3cd4a/1eebe/cd5/7494af3c1cda418d.webp)
这个时候注销用户再次登录,或者重启计算机就可以。重启之后就可以了
![](https://img.php1.cn/3cd4a/1eebe/cd5/8ad8f3bf8da691df.webp)
5、使用镜像创建容器
查看容器中的镜像:
docker images
![](https://img.php1.cn/3cd4a/1eebe/cd5/6789f68dabde0aed.png)
创建caffe的容器:
docker run -t -i bvlc/caffe:gpu /bin/bashmo
![](https://img.php1.cn/3cd4a/1eebe/cd5/443b30bb45e66690.webp)
前面的aad048ad243fd243f就是容器的id
退出容器:
在容器中输入exit
![](https://img.php1.cn/3cd4a/1eebe/cd5/6c257b6ba227cc3e.webp)
6、验证容器中的caffe是否可以使用
验证python是否可以inport caffe
![](https://img.php1.cn/3cd4a/1eebe/cd5/72fd2c126203a875.webp)
7、运行一个mnist例子
首先,caffe的官方docker里面的caffe文件在/opt/目录下
![](https://img.php1.cn/3cd4a/189d8/978/7dbdf0f38ad53545.jpeg)
然后按照例子执行的三步走:下载数据------数据转格式------训练
进入/opt/caffe/data/mnist目录下运行脚本文件get_mnist.sh
![](https://img.php1.cn/3cd4a/1eebe/cd5/1e3db12dd78db092.webp?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RpYW5hX1o=,size_16,color_FFFFFF,t_70)
在caffe目录下面执行转数据格式
./examples/mnist/create_mnist.sh
![](https://img.php1.cn/3cd4a/1eebe/cd5/5b97d3b808d031e2.webp?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RpYW5hX1o=,size_16,color_FFFFFF,t_70)
8、训练模型
9、提交修改过后的容器到新的本地镜像
docker commit -m 'down load mnist date' -a 'dianazhang' f3f1a69e9595 caffe-mnist//down load mnist date 是注释内容
//dianazhang 提交用户
//f3f1a69e9595 容器id
//caffe-mnist 新的镜像的名字
![](https://img.php1.cn/3cd4a/1eebe/cd5/bdd1ca32a69bc8b2.webp)
![](https://img.php1.cn/3cd4a/1eebe/cd5/7d7ef3f69d479716.webp)
查看的时候就有caffe-mnist这个镜像了