深入理解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中struct模块对字节流/二进制流的操作教程
Jan 21 Python
使用Django和Python创建Json response的方法
Mar 26 Python
Django contenttypes 框架详解(小结)
Aug 13 Python
用python3教你任意Html主内容提取功能
Nov 05 Python
python实现五子棋人机对战游戏
Mar 25 Python
树莓派与PC端在局域网内运用python实现即时通讯
Jun 22 Python
Python列表的切片实例讲解
Aug 20 Python
Python使用graphviz画流程图过程解析
Mar 31 Python
Jupyter Notebook 实现正常显示中文和负号
Apr 24 Python
Django中template for如何使用方法
Jan 31 Python
python 利用matplotlib在3D空间中绘制平面的案例
Feb 06 Python
python图像处理 PIL Image操作实例
Apr 09 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
类的另类用法--数据的封装
2006/10/09 PHP
php 无法载入mysql扩展
2010/03/12 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
PHP基本语法实例总结
2016/09/09 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
详解angular element()方法使用
2017/04/08 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
Python中不同进制的语法及转换方法分析
2016/07/27 Python
python日志logging模块使用方法分析
2019/05/23 Python
python中几种自动微分库解析
2019/08/29 Python
Python for i in range ()用法详解
2020/09/18 Python
python speech模块的使用方法
2020/09/09 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
应聘自荐书
2013/10/08 职场文书
同学会邀请书大全
2014/01/12 职场文书
人事助理自荐信
2014/02/02 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书