深入理解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在校内发人人网状态(人人网看状态)
Feb 19 Python
python计算方程式根的方法
May 07 Python
Python内置函数OCT详解
Nov 09 Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 Python
对pandas进行数据预处理的实例讲解
Apr 20 Python
Python遍历文件夹 处理json文件的方法
Jan 22 Python
对python周期性定时器的示例详解
Feb 19 Python
django框架基于模板 生成 excel(xls) 文件操作示例
Jun 19 Python
Python使用python-docx读写word文档
Aug 26 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
Django在Model保存前记录日志实例
May 14 Python
python数字图像处理之图像自动阈值分割示例
Jun 28 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
PHPMailer安装方法及简单实例
2008/11/25 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
提取字符串中年月日的函数代码
2013/11/05 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
Python 自动补全(vim)
2014/11/30 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
python爬虫实现中英翻译词典
2019/06/25 Python
通过cmd进入python的实例操作
2019/06/26 Python
在django中,关于session的通用设置方法
2019/08/06 Python
python函数定义和调用过程详解
2020/02/09 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
Python celery原理及运行流程解析
2020/06/13 Python
thinkphp5 路由分发原理
2021/03/18 PHP
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
与UNIX有关的几个名词
2015/09/17 面试题
医学检验专业大学生求职信
2013/11/18 职场文书
高三地理教学反思
2014/01/11 职场文书
会展策划与管理专业大学生职业生涯规划
2014/02/07 职场文书
2014年健康教育实施方案
2014/02/17 职场文书
租房协议书怎么写
2014/04/10 职场文书
法人任命书范本
2014/06/04 职场文书
交通安全标语
2014/06/06 职场文书
球队口号
2014/06/18 职场文书
2015新学期家长寄语
2015/02/26 职场文书