深入理解pytorch库的dockerfile


Posted in Python onJune 10, 2022

0. dockerfile命令

FROM 			# 基础镜像,一切从这里开始构建
MAINTAINER 		# 镜像是谁写的,姓名+邮箱
RUN				# 镜像构建的时候需要运行的命令
ADD				# 步骤:tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR			# 镜像的工作目录
VOLUME			# 挂载的目录
EXPOSE			# 保留端口配置
CMD				# 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT  	# 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD			# 当构建一个被继承DockerFile这个时候就会运行ONBUILD指令,触发指令。
COPY			# 类似ADD,将我们文件拷贝到镜像中
ENV				# 构建的时候设置环境变量

1. 使用指令的注意点

1.FROM:
如果制作base image,则使用FROM scratch

如果在某镜像基础上制作,例如使用FROM centos:7指定具体的base image的版本,不指定版本则默认为最新的。

2.LABEL:
需要对镜像做基础的介绍:

LABEL maintainer="Prin<xxx@qq.com>"
LABEL version = "1.0"
LABEL description="prin First DcokerFile"

3.RUN:
容器内执行的命令,有两种格式。
shell:RUN <命令行命令>,等同于在终端执行shell命令
exec:RUN ["可执行文件","参数1","参数2"]

注意:Dockerfile的指令每执行一次都会在docker上新建一层。所以过多无意义的层,会造成镜像膨胀过大,建议使用&&符号链接命令,例如:RUN yum -y update && yum -y install yum net-tools。

4.ADD and COPY:
概述:
ADD和COPY都是将宿主机上的文件拷入镜像中。大部分情况,,COPY优于ADD(方便明了)。 ADD除了COPY还有额外功能(解压)。添加远程文件/目录请使用curl或者wget。

ADD For_add /prin ------- 将本地文件夹For_add(与dockerfile在同一个目录)内的文件全部拷入镜像的/prin目录。
COPY For_cp /prin ------ 同上。
ADD for_add.tar.gz /prin/unzip/ ------ 将 for_add.tar.gz压缩文件拷贝进入镜像的/prin/unzip/目录,并解压。

5.WORKDIR(工作目录):
在容器生成时,默认切换到具体的目录中。

6.VOLUME(挂载):
概述:
设置数据卷的位置,并且容器在运行时自动挂载为匿名卷,当然也可以覆盖与具名挂载。

2. dockerfile

# 继承Pytorch官方的cuda镜像
FROM pytorch/pytorch:1.11.0-cuda11.3-cudnn8-devel
LABEL maintainer = "xxxxxxx@qq.com"
LABEL version = "0.2"
LABEL description = "prepare deep learning environment"
# 指定docker镜像中,默认的工作路径是/home/BE
WORKDIR /home/BE
RUN rm /etc/apt/sources.list.d/cuda.list \
	&& rm /etc/apt/sources.list.d/nvidia-ml.list \
	&& apt-get update \
	&& apt-get install -y libgl1 \
	&& conda install gdal==3.4.1 \
	&& pip config set global.index-url https://pypi.douban.com/simple/ \
	&& pip install opencv-python-headless==4.6.0.66 \
    && pip install opencv-python==4.6.0.66 \
    && pip install segmentation-models-pytorch

3. 参考

https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/manage-docker/manage-windows-dockerfile

4. 存在的问题

Q1:每一次运行docker容器时,是否要挂载本地路径

docker run的时候,进行挂载

Q2:dockerfile中涉及apt-get 操作失败

官方的解释:为了最好地确保我们的 RPM 和 Debian 软件包存储库的安全性和可靠性,NVIDIA 将从 2022 年 4 月 27 日开始更新和轮换 apt、dnf/yum 和 zypper 软件包管理器使用的签名密钥。未能更新存储库签名密钥将导致尝试从 CUDA 存储库访问或安装包时出现包管理错误。为确保继续访问最新的 NVIDIA 软件,请完成以下步骤: 删除过时的签名密钥 Deb…

RUN rm /etc/apt/sources.list.d/cuda.list
RUN rm /etc/apt/sources.list.d/nvidia-ml.list

到此这篇关于pytorch库的dockerfile的文章就介绍到这了,更多相关pytorch库的dockerfile内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Python 相关文章推荐
Python根据区号生成手机号码的方法
Jul 08 Python
Python用threading实现多线程详解
Feb 03 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
Python Excel处理库openpyxl使用详解
May 09 Python
python IDLE 背景以及字体大小的修改方法
Jul 12 Python
python数值基础知识浅析
Nov 19 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
实现Python与STM32通信方式
Dec 18 Python
使用PyTorch训练一个图像分类器实例
Jan 08 Python
pandas中的数据去重处理的实现方法
Feb 10 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 Python
使用BeautifulSoup4解析XML的方法小结
Dec 07 Python
如何利用python实现列表嵌套字典取值
Jun 10 #Python
python中filter,map,reduce的作用
Jun 10 #Python
Django框架中模型的用法
Jun 10 #Python
Django框架中视图的用法
Jun 10 #Python
python基础之//、/与%的区别详解
Jun 10 #Python
Django框架中表单的用法
Jun 10 #Python
移除Selenium中window.navigator.webdriver值
Jun 10 #Python
You might like
php session劫持和防范的方法
2013/11/12 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
脚本安需导入(装载)的三种模式的对比
2007/06/24 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
浅析Vue中method与computed的区别
2018/03/06 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
17个Python小技巧分享
2015/01/23 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
flask框架中的cookie和session使用
2021/01/31 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
儿科主治医生个人求职信
2013/09/23 职场文书
kfc实习自我鉴定
2013/12/14 职场文书
小学生自我评价范文
2014/01/25 职场文书
文明之星事迹材料
2014/05/09 职场文书
心得体会的写法
2014/09/05 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
城南旧事观后感
2015/06/11 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
决心书格式及范文
2019/06/24 职场文书
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
python实现双向链表原理
2022/05/25 Python