详情

首页手游攻略 docker-pytorch:实践指南

docker-pytorch:实践指南

佚名 2026-09-11 15:40:01

在项目中评估docker-pytorch,可以先看清用途边界:PyTorch 的 Docker 映像。实际做部署与运行环境时,经常会碰到权限、依赖和环境差异会放大维护成本,所以功能列表并不能代替验证。更实际的做法是在非生产环境复现一次安装与运行,同时核对依赖锁定、权限边界、日志、回滚和资源消耗,不要直接在关键项目上。如果团队属于愿意维护环境并重视故障恢复的工程团队,它有继续测试的理由;否则先看替代方案会更省时间。

PyTorch Docker 镜像

Ubuntu + PyTorch + CUDA(可选)

要求

为了使用此镜像,您必须安装 Docker 引擎。使用说明 用于设置 Docker Engine 的是 可在 Docker 网站 上找到。

CUDA 要求

如果您有 CUDA- 兼容的 NVIDIA 显卡,则可以使用 CUDA-enabled PyTorch 映像版本以启用硬件加速。我只有 在 Ubuntu Linux 中对此进行了测试。

首先,确保安装适当的 NVIDIA 驱动程序。在Ubuntu上, 我发现确保您拥有正确版本的最简单方法 设置的驱动程序是通过安装 CUDA _至少与 您打算使用的图像_via 官方 NVIDIA CUDA 下载页面。 例如,如果您打算使用 cuda-10.1 映像,则设置 CUDA 10.1 或 CUDA 10.2 应确保您拥有正确的图形驱动程序。

您还需要安装 NVIDIA 容器工具包以启用 GPU 设备 Docker 容器内的访问。这可以在以下位置找到: NVIDIA/nvidia-docker.

预建图像

预构建的镜像可以在 Docker Hub 上使用,名称为 anibali/pytorch.

例如,您可以使用以下命令拉取 PyTorch 2.0.1 和 CUDA 11.8 的映像:

$ docker pull anibali/pytorch:2.0.1-cuda11.8

用途

运行 PyTorch 脚本

可以使用以下命令在容器内运行 PyTorch 程序 python3 命令。例如,如果您位于包含以下内容的目录中: 一些带有入口点 main.py 的 PyTorch 项目,您可以使用以下命令运行它 以下命令:

docker run --rm -it --init 
  --gpus=all 
  --ipc=host 
  --user="$(id -u):$(id -g)" 
  --volume="$PWD:/app" 
  anibali/pytorch python3 main.py

以下是上面显示的 Docker 命令行选项的说明:

  • --gpus=all:如果使用 CUDA,则为必需,否则为可选。通过 显卡从主机到容器。您还可以更准确地 使用此选项控制暴露哪些显卡(请参阅文档 在 https://github.com/NVIDIA/nvidia-docker)。
  • --ipc=host:如果使用多处理则需要,如所述 https://github.com/pytorch/pytorch#docker-image.
  • --user="$(id -u):$(id -g)":设置容器内的用户以匹配您的 用户和组 ID。可选,但对于使用正确的方式写入文件很有用 所有权。
  • --volume="$PWD:/app":将当前工作目录挂载到容器中。 容器内的默认工作目录是/app。选修的。

运行图形应用程序

如果您在 Linux 主机上运行,则可以在 Docker 内运行代码 使用主机 X 服务器显示图形的容器(这允许您使用 以 OpenCV 的 imshow 为例)。这里我们描述一个快速而肮脏的(但是INSECURE) 这样做的方法。有关 GUIs 和 Docker 的更全面指南请查看 http://wiki.ros.org/docker/Tutorials/GUI.

在主机上运行:

sudo xhost +local:root

您可以稍后使用 sudo xhost -local:root 撤销这些访问权限。 现在,当您运行容器时,请确保添加选项 -e "DISPLAY"--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw"。这将提供容器 与用于通信的 X11 插座和显示器 ID 一起使用。这是一个 示例:

docker run --rm -it --init 
  --gpus=all 
  -e "DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" 
  anibali/pytorch python3 -c "import tkinter; tkinter.Tk().mainloop()"

派生您自己的图像

向映像添加额外依赖项的推荐方法是创建 您自己的 Dockerfile,使用此项目中的 PyTorch 映像之一作为基础。

例如,假设您需要 OpenCV 并希望使用 PyTorch 2.0.1。您可以使用以下命令创建自己的 Dockerfile anibali/pytorch:2.0.1-cuda11.8-ubuntu22.04作为基础镜像并安装 OpenCV 使用额外的构建步骤:

FROM anibali/pytorch:2.0.1-cuda11.8-ubuntu22.04

# Set up time zone.
ENV TZ=UTC
RUN sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime

# Install system libraries required by OpenCV.
RUN sudo apt-get update 
 && sudo apt-get install -y libgl1-mesa-glx libgtk2.0-0 libsm6 libxext6 
 && sudo rm -rf /var/lib/apt/lists/*

# Install OpenCV from PyPI.
RUN pip install opencv-python==4.5.1.48
点击查看更多
推荐专题
热门阅读