深入理解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制作简单的钢琴程序的教程
Apr 01 Python
Python使用MONGODB入门实例
May 11 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
python实现扫描日志关键字的示例
Apr 28 Python
Python快速查找list中相同部分的方法
Jun 27 Python
python opencv实现旋转矩形框裁减功能
Jul 25 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 Python
Python之NumPy(axis=0 与axis=1)区分详解
May 27 Python
对PyQt5中的菜单栏和工具栏实例详解
Jun 20 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
scrapy处理python爬虫调度详解
Nov 23 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
Oracle Faq(Oracle的版本)
2006/10/09 PHP
Dedecms常用函数解析
2008/02/01 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
JavaScript字符串检索字符的方法
2017/06/23 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
vue实现循环切换动画
2018/10/17 Javascript
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
使用pdb模块调试Python程序实例
2015/06/02 Python
Python画图学习入门教程
2016/07/01 Python
python如何实现反向迭代
2018/03/20 Python
python解析含有重复key的json方法
2019/01/22 Python
python logging模块的使用总结
2019/07/09 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
keras中的backend.clip用法
2020/05/22 Python
keras 多gpu并行运行案例
2020/06/10 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
日语求职信范文
2013/12/17 职场文书
生物科学系大学生的自我评价
2013/12/20 职场文书
水果超市创业计划书
2014/01/27 职场文书
《鲸》教学反思
2016/02/23 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技