深入理解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 15 Python
python中while循环语句用法简单实例
May 07 Python
Python语法快速入门指南
Oct 12 Python
python+PyQT实现系统桌面时钟
Jun 16 Python
Python数据报表之Excel操作模块用法分析
Mar 11 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
python并发编程 Process对象的其他属性方法join方法详解
Aug 20 Python
关于Tensorflow使用CPU报错的解决方式
Feb 05 Python
python剪切视频与合并视频的实现
Mar 03 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
Jun 11 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
Python turtle编写简单的球类小游戏
Mar 31 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扩展开发经验分享
2012/09/06 PHP
基于php-fpm 参数的深入理解
2013/06/03 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
js判断密码强度的方法
2020/03/18 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
Python字典底层实现原理详解
2019/12/18 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
港湾网络笔试题
2014/04/19 面试题
化工机械应届生求职信
2013/11/04 职场文书
财务会计专业求职信范文
2013/12/31 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
JavaScript原型链详解
2021/11/07 Javascript