文章目录
相关文件
制作镜像所需dockfile文件:
百度网盘
链接:https://pan.baidu.com/s/1qFQtMvwGYvw9qIytHvqFqg?pwd=bbzi
提取码:bbzi
阿里云盘
https://www.alipan.com/s/ybMM1NqaviP
前言
dockerfile编写好后可以直接生成镜像.当然也可以自己在docker上一步步搭建好环境,但是这样太慢太繁琐.下面简单记录一下dockerfile的编写
dockerfile编写
一、引入基本镜像
首先可以去hub.docker官网查找所需的基本镜像. 一般是根据cuda版本的操作系统版本(如Ubuntu16.04)来确定基本镜像.
这里为了复现论文,于是选择论文指定的tensorflow-gpu 1.10.1版本, 其对应的cuda版本和cudnn版本可以百度搜索,这里我查到对应的是cuda9和cudnn7,于是找到如下基本镜像. (常用的cuda镜像可以在hub.docker上搜索nvidia/cuda)
如下图,找到基本镜像后将其名字复制下来,粘贴在下面指令标黄部分
FROM iraadit/cuda9.1-cudnn7-opencv-fn as base
二、私钥名称与Ubuntu版本保持一致
RUN apt-key del 7fa2af80 &&
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/3bf863cc.pub &&
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/7fa2af80.pub
三、source.list与ubuntu版本保持一致
将source.list中的对应的单词更改,保持与操作系统一致(这里只有部分ubuntu系统对应的apt源,其他系统请自行百度),我的是16.04,应该吧bionic改为xenial
Ubuntu16.04对应xenial
Ubuntu18.04对应bionic
Ubuntu20.04对应focal
四、安装基础依赖包
根据需要,更改下图标记部分,这里我要用到python3.6.8,基本不用改动
五、安装cudnn
cudnn与cuda版本应该是对应的,具体对应关系可以查看这篇博客
我的基础镜像中包含了cudnn,因此我会把这一行代码注释掉
修改这里的版本号,注意一定要对应!!!
六、名字(不重要)
七、安装python与需要的第三方包
八、设置ssh用户名与密码
下图第一行代码单引号部分就是用户名与密码
构建镜像
dockerfile编写完成后,启动docker
在dockerfile所在目录下,在命令行输入docker build -t py36_cuda9_tf110:v1 .
其中,py36_cuda9_tf110:v1是我给镜像的命名
!!!特别注意,语句最后有一个英文句号.
这表示在当前目录制作镜像文件
如果dockerfile编写正确,就会开始制作镜像,制作完成后docker上也会生成镜像
显示以下界面表示镜像制作完成
可输入docker images查看镜像
保存
输入docker save -o py36_cuda9_tf110.tar py36_cuda9_tf110可以将已有的镜像打包成压缩包
此时dockerfile所在目录会生成一个镜像压缩包
总结
对于dockerfile的编写,本文未提到的地方一般不用修改
windows linux通用