编写Dockerfile构建镜像


相关文件

制作镜像所需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通用

  • 24
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值