Docker部署nnunetv2的实现步骤

 更新时间:2025年04月30日 09:37:05   作者:Tiandaren  
本文主要介绍了Docker部署nnunetv2的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言:感觉一些教程没必要说那么多,直接贴出重点的配置文件。如果有不懂的,可以把此文档丢给gpt,配合自己的环境一同服用。

首先,在 nnunet 路径下创建一个 Dockerfile

由于我已经完成了 nnUNet 的训练,所以不需要将相关数据全部上传到容器中,而是只保留源码。

# 使用适当的基础镜像(如 pytorch 官方镜像)
FROM pytorch/pytorch:latest

# 更新 apt-get 并安装必要的工具和库
RUN apt-get update && apt-get install -y vim \
    && apt-get install -y --no-install-recommends \
    python3-pip \
    python3-setuptools \
    build-essential \
    && apt-get clean \
    && python -m pip install --upgrade pip

# 设置工作目录
WORKDIR /workspace

# 将项目代码复制到容器中
COPY ./nnunetv2 /workspace
COPY requirements.txt /workspace

# 安装项目依赖
RUN pip install --no-cache-dir -r requirements.txt
RUN pip install nnunetv2

# 配置 nnUNet 的环境变量
ENV nnUNet_raw="/workspace/nnUNet_raw"
ENV nnUNet_preprocessed="/workspace/nnUNet_preprocessed"
ENV nnUNet_results="/workspace/nnUNet_trained_models"

# 默认启动命令
CMD ["/bin/bash"]

构建

docker build -t nnunet_docker:0.0.1 .

需要注意的是,nnUNet 已经更新到了 v2 版本,因此环境变量名称也发生了变化。相比于旧版,v2 版本的环境变量已经不再是:

# 旧版配置
ENV nnUNet_raw_data_base="/workspace/DATASET/nnUNet_raw"
ENV nnUNet_preprocessed="/workspace/DATASET/nnUNet_preprocessed"
ENV RESULTS_FOLDER="/workspace/DATASET/nnUNet_trained_models"

以下是我所使用的 requirements.txt 文件:

torch>=2.1.2
acvl-utils<0.3,>=0.2
dynamic-network-architectures<0.4,>=0.3.1
tqdm
dicom2nifti
scipy
batchgenerators>=0.25
numpy
scikit-learn
scikit-image>=0.19.3
SimpleITK>=2.2.1
pandas
graphviz
tifffile
requests
nibabel
matplotlib
seaborn
imagecodecs
yacs
batchgeneratorsv2>=0.2
einops
flask
black
ruff
pre-commit

需要注意的是,原版的 requirements.txt 文件中包含了一个 [dev] 部分,可能会导致错误,可以直接删除这一部分。

在构建好镜像后,运行以下命令启动容器:

docker run --rm -it --gpus all \
    -v /data/xtx/nnUNet/nnUNetFrame/DATASET/nnUNet_raw:/workspace/nnUNet_raw \
    -v /data/xtx/nnUNet/nnUNetFrame/DATASET/nnUNet_preprocessed:/workspace/nnUNet_preprocessed \
    -v /data/xtx/nnUNet/nnUNetFrame/DATASET/nnUNet_trained_models:/workspace/nnUNet_trained_models \
    -p 5000:5000 \
    --ipc=host nnunet_docker:0.0.1

这里由于我使用了一个监听脚本进行部署,因此需要额外映射端口。

到此这篇关于Docker部署nnunetv2的实现步骤的文章就介绍到这了,更多相关Docker部署nnunetv2内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker容器项目无法访问MySQL的问题排查与解决策略

    Docker容器项目无法访问MySQL的问题排查与解决策略

    本文分析了Docker容器连接MySQL时常见的问题,并提供了解决方案,主要问题包括网络隔离、服务启动顺序、权限配置等,解决方案包括使用自定义网络、连接宿主机MySQL、健康检查与启动等待、端口映射与防火墙配置、MySQL权限配置和Host网络模式等,需要的朋友可以参考下
    2026-04-04
  • Docker搭建本地私有仓库的详细步骤

    Docker搭建本地私有仓库的详细步骤

    本篇文章主要介绍了Docker搭建本地私有仓库的详细步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • 限制 Docker Desktop 的资源使用

    限制 Docker Desktop 的资源使用

    本文主要介绍了限制 Docker Desktop 的资源使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • 使用docker搭建go环境的简单步骤

    使用docker搭建go环境的简单步骤

    最近公司里面的项目用到了Docker,正好准备学习下Golang,所以就学习Golang顺便也学习下Docker怎么用的,刚好从头开始配置下环境,这篇文章主要给大家介绍了关于使用docker搭建go环境的简单步骤,需要的朋友可以参考下
    2023-10-10
  • 使用docker-compose,如何调整JVM参数

    使用docker-compose,如何调整JVM参数

    这篇文章主要介绍了使用docker-compose,如何调整JVM参数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Dockerfile打包部署详细图文教程

    Dockerfile打包部署详细图文教程

    这篇文章主要介绍了Dockerfile打包部署的相关资料,并详细解释了从创建Dockerfile到启动容器的每一步过程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • 如何修改Docke上传/下载并发线程数来解决docker: unexpected EOF.错误问题

    如何修改Docke上传/下载并发线程数来解决docker: unexpected EOF.错误问题

    下载或上传镜像时,有可能因为网络问题导致报出docker: unexpected EOF.的错误,这时候可以考虑通过修改上传/下载并发线程数来解决,本文给大家分享两种方法帮助大家解决,需要的朋友一起看看吧
    2023-03-03
  • Docker Dockerfile的使用实例

    Docker Dockerfile的使用实例

    这篇文章主要介绍了Docker Dockerfile的使用实例的相关资料,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • docker安装gitea教程(本地部署gitea仓库)

    docker安装gitea教程(本地部署gitea仓库)

    这篇文章主要介绍了docker安装gitea教程(本地部署gitea仓库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • docker常用命令总结之安装、镜像、容器基本操作

    docker常用命令总结之安装、镜像、容器基本操作

    这篇文章主要介绍了docker常用命令总结之安装、镜像、容器基本操作,需要的朋友可以参考下
    2017-05-05

最新评论