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-develLABEL maintainer = "xxxxxxx@qq.com"
LABEL version = "0.2"
LABEL description = "prepare deep learning environment"# 指定docker镜像中,默认的工作路径是/home/BE
WORKDIR /home/BERUN 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相关推荐

  1. 基于PyTorch、易上手,细粒度图像识别深度学习工具库Hawkeye开源

    转载自丨机器之心 鉴于当前领域内尚缺乏该方面的深度学习开源工具库,南京理工大学魏秀参教授团队用时近一年时间,开发.打磨.完成了 Hawkeye--细粒度图像识别深度学习开源工具库,供相关领域研究人员和 ...

  2. torch的拼接函数_从零开始深度学习Pytorch笔记(13)—— torch.optim

    前文传送门: 从零开始深度学习Pytorch笔记(1)--安装Pytorch 从零开始深度学习Pytorch笔记(2)--张量的创建(上) 从零开始深度学习Pytorch笔记(3)--张量的创建(下) ...

  3. 10倍!微软开源深度学习优化库DeepSpeed,可训练1000亿参数模型

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :微软 AI博士笔记系列推荐 ...

  4. 微软开源深度学习优化库 DeepSpeed,可训练 1000 亿参数的模型

    人工智能的最新趋势是,更大的自然语言模型可以提供更好的准确性,但是由于成本.时间和代码集成的障碍,较大的模型难以训练.微软日前开源了一个深度学习优化库 DeepSpeed,通过提高规模.速度.可用性并 ...

  5. 【 线性模型 Linear-Model 数学原理分析以及源码实现 深度学习 Pytorch笔记 B站刘二大人(1/10)】

    线性模型 Linear-Model 数学原理分析以及源码实现 深度学习 Pytorch笔记 B站刘二大人(1/10) 数学原理分析 线性模型是我们在初级数学问题中所遇到的最普遍也是最多的一类问题 在线 ...

  6. 【多输入模型 Multiple-Dimension 数学原理分析以及源码详解 深度学习 Pytorch笔记 B站刘二大人 (6/10)】

    多输入模型 Multiple-Dimension 数学原理分析以及源码源码详解 深度学习 Pytorch笔记 B站刘二大人(6/10) 数学推导 在之前实现的模型普遍都是单输入单输出模型,显然,在现实 ...

  7. 基于矢量成果从影像提取中深度学习样本库

    大数据之:影像提取中深度学习样本库获取的思考 话说,虾神一直是做空间统计和数据分析的,对于深度学习这个热门学科,一直以来也就停留在"了解"阶段,虽然这个平展开来,里面比较核心的技术 ...

  8. 深度学习PyTorch,TensorFlow中GPU利用率较低,CPU利用率很低,且模型训练速度很慢的问题总结与分析

    在深度学习模型训练过程中,在服务器端或者本地pc端,输入nvidia-smi来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率(GPU-util),然后采用top来查看CPU ...

  9. 深度学习 — — PyTorch入门(二)

    在深度学习--PyTorch入门(一)中我们介绍了构建网络模型和加载数据的内容,本篇将继续介绍如何完成对模型的训练. 训练:更新网络权重 构建网络结构和加载完数据集之后,便可以开始进行网络权重的训练. ...

最新文章

  1. spring mvc学习(41):restful的crud的项目原型介绍
  2. 计算机硬盘中病毒以后怎么办,计算机中病毒,格式化整个硬盘后还有?怎么办?...
  3. 火了!评分9.7,这本Python书终于玩大了!
  4. el-table click事件多次触发_JavaScript从零开始——DOM事件编程(1)
  5. html 特效隐藏div,如何实现用css3显示隐藏一个div特效
  6. win10鼠标不受控制乱动_终于可以一键禁止Win10自动更新了
  7. R语言︱R社区的简单解析(CRAN、CRAN Task View)
  8. 传智播客 C/C++学习笔记 野指针
  9. maven+springmvc出现:java.sql.SQLException: Unknown system variable 'query_cache_size'
  10. python进阶方向_python进阶—边练边学,学到极致
  11. 谈谈自己学习Linux的心得
  12. cuda compute capability
  13. 分享如何跟进转化客户,提高成单率
  14. BMI指数(Body Mass Index身体质量指数),简称体质指数又称体重指数,BMI值是根据你的身高、体重按照一定的公式得出数值,是一个衡量你身体健康的参数。
  15. C# WAV音乐多音轨合并
  16. python 单行if_python3绘图程序教学:单行If判断式(十三)
  17. mysql源码分析——InnoDB的内存结构源码
  18. 视频转动图怎么做,教你一招搞定
  19. 如何实现MYSQL分库分表
  20. CAS统一登录认证(1):系统安装

热门文章

  1. Usaco Training 刷怪旅 第三层 第六题:Ski Course Design
  2. 冬季-丽江自助游攻略
  3. 姚明!姚明!还是姚明!
  4. 9 Palindrome Number
  5. Java学习_从常用类到多线程引入
  6. iOS DLNA Cyberlink,PlatinumKit库完成DLNA功能
  7. 商业鱼缸的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  8. 脚本学习语言http://www.runoob.com/
  9. java 协程 http_RxJava也能像协程那样优雅的请求网络
  10. java获取A001、A002...到ZZZZ的流水号算法(字母加数字)