美文网首页
Docker训练nnUNet

Docker训练nnUNet

作者: 晓智AI | 来源:发表于2022-04-28 17:43 被阅读0次

    Docker 命令整理

    Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]   
       
      -d, --detach=false         指定容器运行于前台还是后台,默认为false    
      -i, --interactive=false    打开STDIN,用于控制台交互   
      -t, --tty=false            分配tty设备,该可以支持终端登录,默认为false   
      -u, --user=""              指定容器的用户   
      -a, --attach=[]            登录容器(必须是以docker run -d启动的容器) 
      -w, --workdir=""           指定容器的工作目录  
      -c, --cpu-shares=0         设置容器CPU权重,在CPU共享场景使用   
      -e, --env=[]               指定环境变量,容器中可以使用该环境变量   
      -m, --memory=""            指定容器的内存上限   
      -P, --publish-all=false    指定容器暴露的端口   
      -p, --publish=[]           指定容器暴露的端口  
      -h, --hostname=""          指定容器的主机名   
      -v, --volume=[]            给容器挂载存储卷,挂载到容器的某个目录   
      --volumes-from=[]          给容器挂载其他容器上的卷,挂载到容器的某个目录 
      --cap-add=[]               添加权限,权限清单详见:http://linux.die.net/man/7/capabilities   
      --cap-drop=[]              删除权限,权限清单详见:http://linux.die.net/man/7/capabilities   
      --cidfile=""               运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法   
      --cpuset=""                设置容器可以使用哪些CPU,此参数可以用来容器独占CPU   
      --device=[]                添加主机设备给容器,相当于设备直通   
      --dns=[]                   指定容器的dns服务器   
      --dns-search=[]            指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件   
      --entrypoint=""            覆盖image的入口点   
      --env-file=[]              指定环境变量文件,文件格式为每行一个环境变量   
      --expose=[]                指定容器暴露的端口,即修改镜像的暴露端口   
      --link=[]                  指定容器间的关联,使用其他容器的IP、env等信息   
      --lxc-conf=[]              指定容器的配置文件,只有在指定--exec-driver=lxc时使用   
      --name=""                  指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字   
      --net="bridge"             容器网络设置: 
                                    bridge 使用docker daemon指定的网桥      
                                    host    //容器使用主机的网络   
                                    container:NAME_or_ID  >//使用其他容器的网路,共享IP和PORT等网络资源   
                                    none 容器使用自己的网络(类似--net=bridge),但是不进行配置  
      --privileged=false         指定容器是否为特权容器,特权容器拥有所有的capabilities   
      --restart="no"             指定容器停止后的重启策略: 
                                    no:容器退出时不重启   
                                    on-failure:容器故障退出(返回值非零)时重启  
                                    always:容器退出时总是重启   
      --rm=false                 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)   
      --sig-proxy=true           设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理 
    
    

    运行Docker镜像

    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA$ sudo docker run -it --rm --name abdomen --gpus all py38pt17:py17-cuda11 
    [sudo] liuhz 的密码: 
    root@f18029097471:/workspace# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    overlay          39T  7.7T   29T  22% /
    tmpfs            64M     0   64M   0% /dev
    tmpfs            63G     0   63G   0% /sys/fs/cgroup
    shm              64M     0   64M   0% /dev/shm
    /dev/sda2        39T  7.7T   29T  22% /etc/hosts
    tmpfs            63G   12K   63G   1% /proc/driver/nvidia
    tmpfs            13G  3.9M   13G   1% /run/nvidia-persistenced/socket
    udev             63G     0   63G   0% /dev/nvidia0
    tmpfs            63G     0   63G   0% /proc/asound
    tmpfs            63G     0   63G   0% /proc/acpi
    tmpfs            63G     0   63G   0% /proc/scsi
    tmpfs            63G     0   63G   0% /sys/firmware
    root@f18029097471:/workspace# nvidia-smi
    Thu Apr 28 06:40:10 2022       
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 470.103.01   Driver Version: 470.103.01   CUDA Version: 11.4     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  NVIDIA GeForce ...  Off  | 00000000:18:00.0 Off |                  N/A |
    | 30%   36C    P8    31W / 350W |  20587MiB / 24268MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    |   1  NVIDIA GeForce ...  Off  | 00000000:3B:00.0 Off |                  N/A |
    | 67%   63C    P2   197W / 350W |  23631MiB / 24268MiB |     16%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    |   2  NVIDIA GeForce ...  Off  | 00000000:5E:00.0 Off |                  N/A |
    | 30%   33C    P8    20W / 350W |      8MiB / 24268MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    |   3  NVIDIA GeForce ...  Off  | 00000000:86:00.0 Off |                  N/A |
    | 30%   41C    P8    25W / 350W |      8MiB / 24268MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
                                                                                   
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    +-----------------------------------------------------------------------------+
    

    以交互式模式启动docker

    docker container run --ipc=host -it --rm --gpus "device=0" --name nnunetv0 -v 本地path to/nnUNetData:/workspace/data nnunet_docker:v0 /bin/bash
    
    $ sudo docker run --gpus all -it --rm --ipc=host -v /media/gy501/SSD/nnunet:/workspace/nnunet nvcr.io/nvidia/pytorch:20.09-py3
    
    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/nnUNet$ sudo docker run --gpus all -it --rm --ipc=host -v /home/liuhz/Github/Naive2SOTA/nnUNetFrame/DATASET:/workspace/data nnunet_docker:v0 /bin/bash
    

    $ docker run --gpus all -it --rm -v local_dir:container_dir nvcr.io/nvidia/pytorch:xx.xx-py3

    参数解释:
    -it means run in interactive mode 交互模式
    --rm will delete the container when finished 在完成后删除容器
    -v is the mounting directory 挂载目录
    local_dir 是主机系统中您想要从容器中访问的目录或文件(绝对路径)。
    container_dir 是本地目录是主机系统中您想要从容器中访问的目录或文件(绝对路径)。

    整理数据集

    参考结构树
    nnUNet_raw_data_base/nnUNet_raw_data/Task002_Heart
    ├── dataset.json
    ├── imagesTr
    │ ├── la_003_0000.nii.gz
    │ ├── la_004_0000.nii.gz
    │ ├── ...
    ├── imagesTs
    │ ├── la_001_0000.nii.gz
    │ ├── la_002_0000.nii.gz
    │ ├── ...
    └── labelsTr
    ├── la_003.nii.gz
    ├── la_004.nii.gz
    ├── ...

    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/DATASET$ ls
    nnUNet_cropped_data  nnUNet_preprocessed  nnUNet_raw_data  RESULTS_FOLDER
    
    

    在nnUNet根目录下新建Dockerfile文件

    FROM nvcr.io/nvidia/pytorch:21.08-py3
    RUN apt-get update && 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 ./   /workspace
    
    RUN pip install pip -U
    RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    
    RUN pip install -e .
    
    ENV nnUNet_raw_data_base="/workspace/data"
    ENV nnUNet_preprocessed="/workspace/data/nnUNet_preprocessed"
    ENV RESULTS_FOLDER="/workspace/data/RESULTS_FOLDER"
    

    运行docker build命令

    docker构建后无法修改trainer等文件,因此需要在代码无误后再在docker中封装成镜像。

    docker build -t nnunet_docker:v0 .
    
    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/nnUNet$ sudo docker build -t nnunet_docker:v0 .
    
    Successfully built 1810c476249c
    Successfully tagged nnunet_docker:v0
    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/nnUNet$ ls
    

    删除多余的Docker

    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~$ sudo docker rmi c9247429b447
    Error response from daemon: conflict: unable to delete c9247429b447 (cannot be forced) - image has dependent child images
    
    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~$ sudo docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=c9247429b447)
    

    这里可以将build好的docker保存到本地分享给有需要的小伙伴,命令如下

    docker image save nnunet_docker:v0 -o nnunet_dockerv0.tar.gz
    
    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/nnUNet$ sudo docker image save nnunet_docker:v0 -o nnunet_dockerv0.tar.gz
    

    数据集转换

    nnU-Net希望得到结构化格式的数据集。这种格式遵循[Medical Segmentation Decthlon]的数据结构。

    root@49f40e566e82:/workspace# nnUNet_convert_decathlon_task -i /workspace/data/nnUNet_raw_data/Task01_BrainTumour -p 5
    

    报错处理

    1. SimpleITK
    RuntimeError: Exception thrown in SimpleITK ImageFileReader_Execute: /tmp/SimpleITK-build/ITK/Modules/IO/NIFTI/src/itkNiftiImageIO.cxx:1980:
    ITK ERROR: ITK only supports orthonormal direction cosines.  No orthonormal definition found!
    

    解决方案:

    root@046f5dac3535:/workspace# pip install SimpleITK==2.0
    
    Traceback (most recent call last):
      File "/opt/conda/bin/nnUNet_train", line 11, in <module>
        load_entry_point('nnunet', 'console_scripts', 'nnUNet_train')()
      File "/workspace/nnunet/run/run_training.py", line 137, in main
        trainer_class = get_default_configuration(network, task, network_trainer, plans_identifier)
      File "/workspace/nnunet/run/default_configuration.py", line 59, in get_default_configuration
        trainer_class = recursive_find_python_class([join(*search_in)], network_trainer,
      File "/workspace/nnunet/training/model_restore.py", line 37, in recursive_find_python_class
        tr = recursive_find_python_class([join(folder[0], modname)], trainer_name, current_module=next_current_module)
      File "/workspace/nnunet/training/model_restore.py", line 37, in recursive_find_python_class
        tr = recursive_find_python_class([join(folder[0], modname)], trainer_name, current_module=next_current_module)
      File "/workspace/nnunet/training/model_restore.py", line 28, in recursive_find_python_class
        m = importlib.import_module(current_module + "." + modname)
      File "/opt/conda/lib/python3.8/importlib/__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
      File "<frozen importlib._bootstrap>", line 991, in _find_and_load
      File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 783, in exec_module
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
      File "/workspace/nnunet/training/network_training/nnUNet_variants/data_augmentation/nnUNetTrainerV2_DA5.py", line 22, in <module>
        from batchgenerators.transforms.local_transforms import BrightnessGradientAdditiveTransform, LocalGammaTransform
      File "/opt/conda/lib/python3.8/site-packages/batchgenerators/transforms/local_transforms.py", line 21, in <module>
        from batchgenerators.utilities.custom_types import ScalarType, sample_scalar
      File "/opt/conda/lib/python3.8/site-packages/batchgenerators/utilities/custom_types.py", line 19, in <module>
        ScalarType = Union[Union[int, float], Tuple[float, float], Callable[[Any, ...], Union[float, int]]]
      File "/opt/conda/lib/python3.8/typing.py", line 816, in __getitem__
        return self.__getitem_inner__(params)
      File "/opt/conda/lib/python3.8/typing.py", line 261, in inner
        return func(*args, **kwds)
      File "/opt/conda/lib/python3.8/typing.py", line 839, in __getitem_inner__
        args = tuple(_type_check(arg, msg) for arg in args)
      File "/opt/conda/lib/python3.8/typing.py", line 839, in <genexpr>
        args = tuple(_type_check(arg, msg) for arg in args)
      File "/opt/conda/lib/python3.8/typing.py", line 149, in _type_check
        raise TypeError(f"{msg} Got {arg!r:.100}.")
    TypeError: Callable[[arg, ...], result]: each arg must be a type. Got Ellipsis.
    

    Docker镜像上传

    使用 docker login 命令登录账号

    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/nnUNet$ sudo docker login -u harold2022
    Password: 
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    Login Succeeded
    

    修改镜像 repository
    上传镜像前我们必须通过 docker tag 命令修改镜像的 repository,使之与 Docker Hub 账号匹配。
    Docker Hub 为了区分不同用户的同名镜像,镜像的 registry 中要包含用户名,完整格式为:[username]/xxx:tag

    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/nnUNet$ docker tag nnunet_docker:v1 harold2022/nnunet_docker:v1
    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/nnUNet$ sudo docker images -a
    REPOSITORY                 TAG                               IMAGE ID       CREATED         SIZE
    harold2022/nnunet_docker   v1                                3d969a290dd2   13 hours ago    26.1GB
    nnunet_docker              v1                                3d969a290dd2   13 hours ago    26.1GB
    nnunet_docker              v0                                e6e7950952e1   25 hours ago    13GB
    newubuntu                  cuda10-ubuntu18                   0dd9ea953585   3 weeks ago     4.46GB
    nvidia/cuda                10.2-cudnn8-devel-ubuntu18.04     0dd9ea953585   3 weeks ago     4.46GB
    pytorch/pytorch            1.11.0-cuda11.3-cudnn8-devel      730572d0c0dd   7 weeks ago     13.7GB
    hello-world                latest                            feb5d9fea6a5   7 months ago    13.3kB
    nvidia/cuda                11.4.0-cudnn8-devel-ubuntu20.04   1885dcefbe89   7 months ago    9.01GB
    py38pt17                   py17-cuda11                       f20d42e5d606   18 months ago   12GB
    pytorch/pytorch            1.7.0-cuda11.0-cudnn8-devel       f20d42e5d606   18 months ago   12GB
    nvidia/cuda                11.0-base                         2ec708416bb8   20 months ago   122MB
    pytorch/pytorch            1.6.0-cuda10.1-cudnn7-devel       bb833e4d631f   21 months ago   7.04GB
    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/nnUNet$ 
    
    

    上传镜像
    我们使用 docker push 命令将镜像上传到 Docker Hub:

    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/nnUNet$ sudo docker push harold2022/nnunet_docker:v1
    [sudo] liuhz 的密码: 
    The push refers to repository [docker.io/harold2022/nnunet_docker]
    643276880307: Layer already exists 
    ebd73e86c645: Layer already exists 
    0e00fb7958ca: Layer already exists 
    271642b69e95: Layer already exists 
    070cabc2eaa3: Layer already exists 
    7ef887ba4a3f: Layer already exists 
    36cd314e6807: Layer already exists 
    3095ea55b1c9: Layer already exists 
    626800c31be3: Layer already exists 
    eca318b890fc: Layer already exists 
    03aea7c9e3d1: Layer already exists 
    53194dce1444: Layer already exists 
    ef8330bcc944: Layer already exists 
    964ee116c0c0: Layer already exists 
    7a694df0ad6c: Layer already exists 
    3fd9df553184: Layer already exists 
    805802706667: Layer already exists 
    v1: digest: sha256:a85255cc0ca5054cadc3a61a4ca8bd349c00c46586e5068776e07b8c99455b25 size: 3903
    
    
    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~$ sudo docker tag 0b4ade9938b3 harold2022/upupup:latest
    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~$ docker images -a
    REPOSITORY                 TAG                               IMAGE ID       CREATED          SIZE
    harold2022/upupup          latest                            0b4ade9938b3   18 minutes ago   13GB
    upupup                     latest                            0b4ade9938b3   18 minutes ago   13GB
    <none>                     <none>                            22b2e0fabf03   18 minutes ago   13GB
    <none>                     <none>                            62c837db5edb   18 minutes ago   13GB
    <none>                     <none>                            f18cef610392   18 minutes ago   13GB
    <none>                     <none>                            ea43ffa240c0   21 minutes ago   12.1GB
    <none>                     <none>                            95cefb54e0d8   21 minutes ago   12.1GB
    <none>                     <none>                            50326d1bd31d   21 minutes ago   12.1GB
    harold2022/nnunet_docker   v1                                3d969a290dd2   7 days ago       26.1GB
    <none>                     <none>                            6a2fb0a04897   7 days ago       26.1GB
    <none>                     <none>                            bdebb6388c26   7 days ago       26.1GB
    <none>                     <none>                            54c8f6597ebe   7 days ago       26.1GB
    <none>                     <none>                            cc735d7f6c7b   7 days ago       25.1GB
    <none>                     <none>                            801398be2723   7 days ago       25.1GB
    <none>                     <none>                            510fe98c4a00   7 days ago       25.1GB
    <none>                     <none>                            e70a40183fc7   8 days ago       12.1GB
    <none>                     <none>                            5efc50a43b80   8 days ago       12.1GB
    nvidia/cuda                10.2-cudnn8-devel-ubuntu18.04     0dd9ea953585   4 weeks ago      4.46GB
    pytorch/pytorch            1.11.0-cuda11.3-cudnn8-devel      730572d0c0dd   8 weeks ago      13.7GB
    hello-world                latest                            feb5d9fea6a5   7 months ago     13.3kB
    nvidia/cuda                11.4.0-cudnn8-devel-ubuntu20.04   1885dcefbe89   7 months ago     9.01GB
    py38pt17                   py17-cuda11                       f20d42e5d606   18 months ago    12GB
    pytorch/pytorch            1.7.0-cuda11.0-cudnn8-devel       f20d42e5d606   18 months ago    12GB
    nvidia/cuda                11.0-base                         2ec708416bb8   20 months ago    122MB
    pytorch/pytorch            1.6.0-cuda10.1-cudnn7-devel       bb833e4d631f   21 months ago    7.04GB
    
    

    使用docker inspect查看获取容器/镜像的元数据。

    liuhz@ubuntu-SYS-7049GP-TRTC-RI017:~/Github/Naive2SOTA/nnUNetFrame/nnUNet$ docker inspect harold2022/nnunet_docker:v1
    
                    "RESULTS_FOLDER=/workspace/data/RESULTS_FOLDER"
                ],
                "Cmd": [
                    "/bin/sh",
                    "-c",
                    "#(nop) ",
                    "ENV RESULTS_FOLDER=/workspace/data/RESULTS_FOLDER"
                ],
                "ArgsEscaped": true,
                "Image": "sha256:6a2fb0a048974dba4e73dc573376489141e4a8c5fdce321417c0876130f97878",
                "Volumes": null,
                "WorkingDir": "/workspace",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": {
                    "com.nvidia.cudnn.version": "8.0.4.30",
                    "com.nvidia.volumes.needed": "nvidia_driver",
                    "maintainer": "NVIDIA CORPORATION <cudatools@nvidia.com>"
                }
            },
            "DockerVersion": "20.10.14",
            "Author": "",
            "Config": {
                "Hostname": "",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": [
                    "PATH=/opt/conda/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                    "CUDA_VERSION=11.0.3",
                    "LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64",
                    "NVIDIA_VISIBLE_DEVICES=all",
                    "NVIDIA_DRIVER_CAPABILITIES=compute,utility",
                    "NVIDIA_REQUIRE_CUDA=cuda>=11.0 brand=tesla,driver>=418,driver<419 brand=tesla,driver>=440,driver<441 brand=tesla,driver>=450,driver<451",
                    "NCCL_VERSION=2.7.8",
                    "LIBRARY_PATH=/usr/local/cuda/lib64/stubs",
                    "CUDNN_VERSION=8.0.4.30",
                    "nnUNet_raw_data_base=/workspace/data",
                    "nnUNet_preprocessed=/workspace/data/nnUNet_preprocessed",
                    "RESULTS_FOLDER=/workspace/data/RESULTS_FOLDER"
                ],
                "Cmd": [
                    "/bin/bash"
                ],
                "ArgsEscaped": true,
                "Image": "sha256:6a2fb0a048974dba4e73dc573376489141e4a8c5fdce321417c0876130f97878",
                "Volumes": null,
                "WorkingDir": "/work
                "OnBuild": null,
                "Labels": {
                    "com.nvidia.cudnn.version": "8.0.4.30",
                    "com.nvidia.volumes.needed": "nvidia_driver",
                    "maintainer": "NVIDIA CORPORATION <cudatools@nvidia.com>"
                }
            },
            "Architecture": "amd64",
            "Os": "linux",
            "Size": 26078928961,
            "VirtualSize": 26078928961,
            "GraphDriver": {
                "Data": {
                    "LowerDir": "/home/liuhz/Docker/docker/overlay2/28186cee9d33535607cfeb6460abe79815e0aaa5dc87a61019d8eb8979f1ac65/diff:/home/liuhz/Docker/docker/overlay2/e9f8958fa885a660b3810090561dbc9f8d770ae93569fbbc646d13792ca25f84/diff:/home/liuhz/Docker/docker/overlay2/0552dab98d60a7ff100ea98cbcd0d58c7cef63eb0a16cd0a2408b7b3805c33c6/diff:/home/liuhz/Docker/docker/overlay2/8659fa72951cae20fe2428d901fe62f31ea3cb00758d4c53bf0384fb4ac499cb/diff:/home/liuhz/Docker/docker/overlay2/78a26bf9a42f4d7d7d4de8d071a7c6d47a279515a1ed8e38f1174e47e0c4e20c/diff:/home/liuhz/Docker/docker/overlay2/2ae3477c80524bcf3c4e861e06c0dc7faa708117fee5c8f7038a109ff5c31728/diff:/home/liuhz/Docker/docker/overlay2/620c6d7600b0736a6127c6e934139318eb755ff0c378cc9b29c037ddd764fb6d/diff:/home/liuhz/Docker/docker/overlay2/2c9c66a127e9a9681f97e0aa2df49cedd027a095b54d7b4c08fa46de443ebfde/diff:/home/liuhz/Docker/docker/overlay2/3fe47706f787822b6cb9e2f9562a5290b30d12e2614c99b5508aca1fd5a7a333/diff:/home/liuhz/Docker/docker/overlay2/11b2792517edb821cb67613e9fa78f356ee23343f65d530ec55eb4a465b8a31c/diff:/home/liuhz/Docker/docker/overlay2/b04163a448a30b4c5d4b651738a15e1afb507999293af14cd241c643b9efc010/diff:/home/liuhz/Docker/docker/overlay2/1ffcf4b75a3e1795d0d21954b8d83e77ee7b2bb7ab22509ab5f8fa0998e8a0bb/diff:/home/liuhz/Docker/docker/overlay2/866db32fdda605d08096ca4507874efcf4ba96fdbc6ac55fb1608fc4a55e055b/diff:/home/liuhz/Docker/docker/overlay2/f951c45ae456995f58a3a5913a26491648aba4850ef4102aac2056876154c764/diff:/home/liuhz/Docker/docker/overlay2/067882aa81a605b0cca989105319c6f7a951fd73fa8037210093aca18d09e344/diff:/home/liuhz/Docker/docker/overlay2/bed16741e4f4c4134a759a3ad76b6a658b2bf5f7a4fdaedb7e862ead5855ead7/diff",
                    "MergedDir": "/home/liuhz/Docker/docker/overlay2/8c853d82ff068200c6ae208fb3697f144937330db9c10bf3bcf02d7c16d50622/merged",
                    "UpperDir": "/home/liuhz/Docker/docker/overlay2/8c853d82ff068200c6ae208fb3697f144937330db9c10bf3bcf02d7c16d50622/diff",
                    "WorkDir": "/home/liuhz/Docker/docker/overlay2/8c853d82ff068200c6ae208fb3697f144937330db9c10bf3bcf02d7c16d50622/work"
                },
                "Name": "overlay2"
            },
            "RootFS": {
                "Type": "layers",
                "Layers": [
                    "sha256:80580270666742c625aecc56607a806ba343a66a8f5a7fd708e6c4e4c07a3e9b",
                    "sha256:3fd9df55318470e88a15f423a7d2b532856eb2b481236504bf08669013875de1",
                    "sha256:7a694df0ad6cc5789a937ccd727ac1cda528a1993387bf7cd4f3c375994c54b6",
                    "sha256:964ee116c0c06f2be7ceb6566e485b7472872b539d4b9ecea731b67966fb7191",
                    "sha256:ef8330bcc94457526bfc5b5bf658cc70f80c4ea82d6e1d93e28526885efff564",
                    "sha256:53194dce14446627b1f9915d27c925d43d52e84660ea0f19a858de28de4b89cb",
                    "sha256:03aea7c9e3d145201f821a5f386d3f1dc425d91c7c5ef60d94f1f7fd06a848aa",
                    "sha256:eca318b890fc4b51d716a54873f818d1211c7c19b0bd8c8e83c56972fa5dd717",
                    "sha256:626800c31be3fd6f5141b96023332dfbf8e2884e6bdd61644470710dc90c8b58",
                    "sha256:3095ea55b1c97e8ba399be67974e17cadc11b502693ea44cb0cb81455b61cdc2",
                    "sha256:36cd314e68078461474e2ac400e52ff8d868ec9abc3accd0d84fe446924d67e4",
                    "sha256:7ef887ba4a3ff2d8e75b3ea8478a7c34e7322b3e180bc69c7bc8e5734d6f904b",
                    "sha256:070cabc2eaa36d1ed3e8dd41ba970e17f84f3ca008c1828e14d07900d8fb3d22",
                    "sha256:271642b69e955b22563a1029957184495f5e06c9e0494eec22685ce76a051b91",
                    "sha256:0e00fb7958ca784b4ec5ebb9cefdc87372d3824e4fc5bf7a92ed1b79322d41e9",
                    "sha256:ebd73e86c6451e75575b28ab14298435455692d673fc5da24acb5fdbcf2754ca",
                    "sha256:643276880307e2d04f41e0d687e36154c95301b2aefb4be3bf9fbb6a777aa030"
                ]
            },
            "Metadata": {
                "LastTagTime": "2022-04-29T16:21:11.642126059+08:00"
            }
        }
    ]
    

    相关文章

      网友评论

          本文标题:Docker训练nnUNet

          本文链接:https://www.haomeiwen.com/subject/syhdyrtx.html