这篇“pytorch库的dockerfile怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“pytorch库的dockerfile怎么使用”文章吧。
0. dockerfile命令
FROM # 基础镜像,一切从这里开始构建MAINTAINER # 镜像是谁写的,姓名+邮箱RUN# 镜像构建的时候需要运行的命令ADD# 步骤:tomcat镜像,这个tomcat压缩包!添加内容WORKDIR# 镜像的工作目录VOLUME# 挂载的目录EXPOSE# 保留端口配置CMD# 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令ONBUILD# 当构建一个被继承DockerFile这个时候就会运行ONBUILD指令,触发指令。COPY# 类似ADD,将我们文件拷贝到镜像中ENV# 构建的时候设置环境变量
1. 使用指令的注意点
FROM:
如果制作base image
,则使用FROM scratch
。
如果在某镜像基础上制作,例如使用FROM centos:7
指定具体的base image
的版本,不指定版本则默认为最新的。
LABEL:
需要对镜像做基础的介绍:
LABEL maintainer="Prin<xxx@qq.com>"LABEL version = "1.0"LABEL description="prin First DcokerFile"
RUN:
容器内执行的命令,有两种格式。shell:RUN <命令行命令>,等同于在终端执行shell命令
。exec:RUN ["可执行文件","参数1","参数2"]
。
注意:Dockerfile的指令每执行一次都会在docker上新建一层。所以过多无意义的层,会造成镜像膨胀过大,建议使用&&符号链接命令,例如:RUN yum -y update && yum -y install yum net-tools。
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/目录,并解压。
WORKDIR(工作目录):
在容器生成时,默认切换到具体的目录中。
VOLUME(挂载):
概述:
设置数据卷的位置,并且容器在运行时自动挂载为匿名卷,当然也可以覆盖与具名挂载。
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/BEWORKDIR /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. 存在的问题
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.listRUN rm /etc/apt/sources.list.d/nvidia-ml.list
以上就是关于“pytorch库的dockerfile怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。