Docker利用DockerFile创建部署NVIDIA+PyTorch容器的详细过程

 更新时间:2023年06月05日 15:37:59   作者:郭庆汝  
这篇文章主要介绍了Docker利用DockerFile创建部署NVIDIA+PyTorch容器的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Docker利用DockerFile创建部署NVIDIA+PyTorch容器

1、创建 Dockerfile

首先在用户的主目录下创建一个名为 mycode 的文件夹,然后创建 Dockerfile

mkdir mycode
cd mycode/
touch Dockerfile

注意: docker 文件的名称必须是 Dockerfile,如果我们不遵循这个约定,我们的 docker 构建命令将不起作用。

2、在 Dockerfile 中添加关键字和命令

内容如下:

# 设置基础映像
FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
# 定义构建参数
# 例如ARG USER=test为USER变量设置默认值"test"。
ARG USER=test
ARG PASSWORD=${USER}123$
# 处理讨厌的 Python 3 编码问题
ENV LANG C.UTF-8
ENV DEBIAN_FRONTEND noninteractive
ENV MPLLOCALFREETYPE 1
# 更新软件包列表并安装软件属性通用包
RUN apt-get update && apt-get install -y software-properties-common
# 添加Python ppa,以便后续安装Python版本
RUN add-apt-repository ppa:deadsnakes/ppa
# 安装Ubuntu的常用软件包,包括wget、vim、curl、zip、unzip等
RUN apt-get update && apt-get install -y \
    build-essential \
    git \
    wget \
    vim \
    curl \
    zip \
    zlib1g-dev \
    unzip \
    pkg-config \
    libgl-dev \
    libblas-dev \
    liblapack-dev \
    python3-tk \
    python3-wheel \
    graphviz \
    libhdf5-dev \
    python3.9 \
    python3.9-dev \
    python3.9-distutils \
    openssh-server \
    swig \
    apt-transport-https \
    lsb-release \
    libpng-dev \
    ca-certificates &&\
    apt-get clean &&\
    ln -s /usr/bin/python3.9 /usr/local/bin/python &&\
    ln -s /usr/bin/python3.9 /usr/local/bin/python3 &&\
    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py &&\
    python3 get-pip.py &&\
    rm get-pip.py &&\
    # 清理APT缓存以减小Docker镜像大小
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# 设置时区
ENV TZ=Asia/Seoul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 为应用程序创建一个用户
RUN useradd --create-home --shell /bin/bash --groups sudo ${USER}
RUN echo ${USER}:${PASSWORD} | chpasswd
USER ${USER}
ENV HOME /home/${USER}
WORKDIR $HOME
# 安装一些Python库,例如numpy、matplotlib、scipy等
RUN python3 -m pip --no-cache-dir install \
    blackcellmagic\
    pytest \
    pytest-cov \
    numpy \
    matplotlib \
    scipy \
    pandas \
    jupyter \
    scikit-learn \
    scikit-image \
    seaborn \
    graphviz \
    gpustat \
    h5py \
    gitpython \
    ptvsd \
    Pillow==6.1.0 \
    opencv-python
# 安装PyTorch和DataJoint等其他库
# 其中torch==1.13.1表示安装版本为1.13.1的PyTorch
RUN python3 -m pip --no-cache-dir install -i https://pypi.doubanio.com/simple/ \
    torch==1.13.1 \
    torchvision==0.14.1 \
    torchaudio==0.13.1 \
    'jupyterlab>=2'
RUN python3 -m pip --no-cache-dir install datajoint==0.12.9
# 设置环境变量LD_LIBRARY_PATH,以便支持性能分析库
ENV LD_LIBRARY_PATH /usr/local/cuda/extras/CUPTI/lib64:${LD_LIBRARY_PATH}
# 启动ssh服务器,打开22号端口
USER root
RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

3、使用 Docker Build 命令构建镜像

在 mycode 文件夹下运行 docker build 命令,-t 选项用于设置镜像的标签名称。(注意:如下指令中最后的“.”表示在当前目录下)

$ docker build -t jboss-eap:v1 .

结果如下:

4、验证和测试 Docker 映像

到此这篇关于Docker利用DockerFile创建部署NVIDIA+PyTorch容器的文章就介绍到这了,更多相关Docker创建部署NVIDIA+PyTorch容器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 搭建Docker私有仓库(自签名方式)

    搭建Docker私有仓库(自签名方式)

    为了能集中管理我们创建好的镜像,方便部署服务,我们会创建私有的Docker仓库。这篇文章主要介绍了搭建Docker私有仓库(自签名方式),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • docker配置静态ip的实现示例

    docker配置静态ip的实现示例

    如果不配置会docker会自动分配ip地址给容器,但是每次重启后ip地址会改变,本文主要介绍了docker配置静态ip的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • docker容器的一些常见命令小结

    docker容器的一些常见命令小结

    Docker是目前最流行的容器化平台之一,它提供了一种轻量级的虚拟化解决方案,使得应用程序的部署和管理变得更加便捷和高效,这篇文章主要给大家总结介绍了关于docker容器的一些常见命令,需要的朋友可以参考下
    2024-01-01
  • Docker容器使用方法详解

    Docker容器使用方法详解

    容器是基于镜像创建的,容器中的进程依赖于镜像中的文件,那么本篇文章我们就来深入学习容器的基本操作方法,通过示例来加深各位看官对docker容器操作的理解以及记忆,需要的朋友可以参考下
    2022-07-07
  • Docker login和logout的使用

    Docker login和logout的使用

    本文主要介绍了Docker login和logout的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Docker自定义镜像的实现步骤(SpringBoot程序为例)

    Docker自定义镜像的实现步骤(SpringBoot程序为例)

    Docker自定义镜像指的是用户根据自己的需求和规范,使用Dockerfile或其他方式创建的一个Docker镜像,本文给大家介绍了Docker自定义镜像的实现步骤,文中通过图文讲解的非常详细,需要的朋友可以参考下
    2024-06-06
  • Linux下定时自动备份Docker中所有SqlServer数据库的脚本

    Linux下定时自动备份Docker中所有SqlServer数据库的脚本

    这篇文章主要介绍了Linux下定时自动备份Docker中所有SqlServer数据库 ,编写shell文件给出一个备份的范例,在Linux添加定时任务,通过下列命令来检测并安装这个服务,需要的朋友可以参考下
    2022-09-09
  • 基于Docker的MongoDB实现授权访问的方法

    基于Docker的MongoDB实现授权访问的方法

    这篇文章主要介绍了基于Docker的MongoDB实现授权访问的方法,需要的朋友可以参考下
    2017-03-03
  • docker容器调用yum报错的解决办法

    docker容器调用yum报错的解决办法

    在本篇文章里小编给大家分享的是关于docker容器调用yum报错的解决办法,有兴趣的朋友们可以参考下。
    2020-03-03
  • 本地文件如何上传至docker容器

    本地文件如何上传至docker容器

    这篇文章主要介绍了本地文件如何上传至docker容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论