深入理解pytorch库的dockerfile - 网站

深入理解pytorch库的dockerfile

分类:python · 发布时间:2023-11-23 18:34 · 阅读:8512

这篇文章主要介绍了pytorch库的dockerfile,主要包括dockerfile命令,使用指令的注意点及存在的一些问题,本文给大家介绍的非常详细,需要的朋友可以参考下

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" 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内容请搜索0133技术站以前的文章或继续浏览下面的相关文章希望大家以后多多支持0133技术站!

标签:
pytorch dockerfile

相关文章

Python轻松管理与操作文件的技巧分享

在日常开发中,我们经常会遇到需要对文件进行操作的场景,如读写文件、文件夹操作等。本文将为大家介绍一些 Python 中处理文件的实用技巧,让你的工作更高效

pytorch实现梯度下降和反向传播图文详细讲解

这篇文章主要介绍了pytorch实现梯度下降和反向传播,反向传播的目的是计算成本函数C对网络中任意w或b的偏导数。一旦我们有了这些偏导数,我们将通过一些常数α的乘积和该数量相对于成本函数的偏导数来更新网络中的权重和偏差

Selenium多窗口切换解决方案

本文主要介绍了Selenium多窗口切换解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Python自动化办公之定时发送邮件的实现

python中的schedule模块可以使我们方便简单的使用定时任务,即在特定的时间自动的执行一些任务的功能,本文将用这一模块实现邮件自动发送,需要的可以参考一下

Python使用低通滤波器模糊图像功能实现

这篇文章主要介绍了Python使用低通滤波器模糊图像,我们介绍了多种不同类型的滤波器核与卷积操作,使用 scipy.ndimage 模块中的滤波器模糊图像,利用 scipy.fftpack 模块的 fft2() 函数实现高斯模糊,介绍了scipy.signal模块的彩色图像频域卷积,需要的朋友可以参考下

返回分类 返回首页