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修改容器内存大小的实现方式

    docker修改容器内存大小的实现方式

    我们使用docker时,经常会遇到docker容器使用内存大于docker宿主机内存,导致宿主机奔溃,从而影响其他宿主机上容器的运行,下面这篇文章主要给大家介绍了关于docker修改容器内存大小的相关资料,需要的朋友可以参考下
    2022-09-09
  • Docker Compose 轻松管理多容器应用小结

    Docker Compose 轻松管理多容器应用小结

    Docker Compose 是管理多容器应用的利器,通过一个简单的 YAML 文件,开发者可以轻松定义服务、网络和数据卷的配置,这篇文章主要介绍了Docker Compose :轻松管理多容器应用,需要的朋友可以参考下
    2024-12-12
  • Docker跨服务器通信Overlay解决方案(上)之 Consul单实例

    Docker跨服务器通信Overlay解决方案(上)之 Consul单实例

    这篇文章主要介绍了Docker跨服务器通信Overlay解决方案(上)之 Consul单实例,本文通过场景分析实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 解决docker run时候启动两个占有不同端口的问题

    解决docker run时候启动两个占有不同端口的问题

    这篇文章主要介绍了解决docker run时候启动两个占有不同端口的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker安装MinIO全过程

    docker安装MinIO全过程

    这篇文章主要介绍了docker安装MinIO全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Dockerfile中multi-stage(多阶段构建)详解

    Dockerfile中multi-stage(多阶段构建)详解

    在2017年5月3日即将发行的 Docker 17.05.0-ce 中,Docker 官方提供了简便的多阶段构建 (multi-stage build) 方案,下面这篇文章主要给大家介绍了关于Dockerfile中multi-stage(多阶段构建)的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-03-03
  • 利用Docker搭建Laravel开发环境的完整步骤

    利用Docker搭建Laravel开发环境的完整步骤

    这篇文章主要给大家介绍了关于如何利用Docker搭建Laravel开发环境的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 解决docker安装完成报:bridge-nf-call-iptables is disabled问题

    解决docker安装完成报:bridge-nf-call-iptables is disabled问题

    这篇文章主要介绍了解决docker安装完成报:bridge-nf-call-iptables is disabled问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker打包前端镜像的超详细步骤

    docker打包前端镜像的超详细步骤

    要打包前端项目可以使用 Docker 容器技术,下面这篇文章主要给大家介绍了关于docker打包前端镜像的超详细步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Docker容器网络地址的创建修改

    Docker容器网络地址的创建修改

    Docker提供了一个方便的方式来配置容器的网络地址,在本文中,我们将介绍如何修改Docker容器的网络地址,本文主要介绍了Docker容器网络地址的创建修改,感兴趣的可以了解一下
    2024-01-01

最新评论