Docker安装、部署和上传(MICCAI FLARE 2023)

  • Post author:
  • Post category:其他




Docker 安装与阿里云镜像配置

写在前面:

1:Docker Toolbox与Docker Desktop二者只能选择一个安装!只能选择一个安装!

2:换源为必须过程,否则会非常卡,影响整个流程



Docker Desktop安装


安装前工作:


1:Windows10家庭版要自己安装hyper-v

2:启动windows虚拟化(报错Docker Desktop is unable to detect a Hypervisor)

打开设置下的控制面板-程序和功能-启用和关闭windows功能-勾选打开hyper-v

在这里插入图片描述

如遇hyper-v平台置灰无法打开,需要开启bios中的虚拟化技术

根据自己电脑型号自行google如何进入bios界面开启虚拟化,开启后重启电脑

3:安装windows subsystem for linux(否则会报错Docker Desktop requires a newer WSL kernel version)

在这里插入图片描述


安装网址:


https://docs.docker.com/engine/install/

在这里插入图片描述



Docker Toolbox安装


安装网址:


https://github.com/docker/toolbox/releases

安装成功显示界面:

在这里插入图片描述

配置阿里云镜像

1:阿里云网址注册账号https://www.aliyun.com/?spm=5176.12901015-2.0.0.2f944b84R6kl5o

2:进入容器镜像服务

在这里插入图片描述

3:复制自己的加速器地址

在这里插入图片描述

配置阿里云镜像

docker-machine ssh default
sed -i "s]EXTRA_ARGS=]EXTRA_ARGS='--registry-mirror=<自己的加速器地址>|g" /var/lib/boot2docker/profile
exit
docker-machine restart default



Docker基础知识


Docker为每个应用提供了一个完全隔离的环境,Image(镜像)里面有container(容器),每个容器是独立运行的虚拟机,Dockerfile是一个自动创建Image的自动化脚本



使用Docker配置自己的环境

1:首先查看docker中正在运行的容器

docker ps

在这里插入图片描述

2:进入docker容器内部

根据CONTAINER ID 和COMMAND进入容器内

docker exec -it 8c04e722e126 /bin/bash

3:自由配置所需的包和依赖

pip install -e .
#nnunet所需配置



复制/上传本地文件到Docker中

1:首先查看docker中正在运行的容器

docker ps

在这里插入图片描述

2:进入docker容器内部

根据CONTAINER ID 和COMMAND进入容器内

docker exec -it 8c04e722e126 /bin/bash

3:获取路径信息

pwd

在这里插入图片描述

4:退出容器

exit

5:把本地文件a拷贝到docker下容器ID为8c04e722e126的b目录下

docker cp a 8c04e722e126:/workspace/b



上传自己的项目到Docker Hub

1:登录自己的docker hub账号

docker login
#输入账号
#输入密码

2:修改名称,名称必须为Docker ID/仓库名才能上传成功(否则可能会报错:docker:denied: requested access to the resource is denied)

docker images#查看名称和ID
docker tag 原镜像ID Docker ID/新镜像名(repository name):新标签名(tag)

3:将镜像push上去

docker push Docker ID/新镜像名:新标签名

4:可以验证能不能pull下来

docker pull Docker ID/新镜像名:新标签名



Docker基础命令



退出容器与启动容器命令

exit
#退出后,容器销毁,docker ps无法查看
先按Ctrl+P,再按Ctrl+Q
#退出后,容器销毁,docker ps无法查看
docker start 容器名/id
#重新启动容器



常用命令

cd /home  进入 '/ home' 目录' 
cd ..  返回上一级目录 
docker ps         查看运行中容器
docker ps -a     查看所有容器
docker rmi [镜像 ID]  删除镜像
# 注意:容器未被销毁时,镜像无法被删除
docker rm -f <containerid>   删除容器



Dockerfile文件使用方法-自动化脚本生成镜像



如何运行Dockerfile?

使用当前目录的 Dockerfile 创建镜像

docker build -t ces/nginx:laster . 

使用-f标志指向文件系统中任何目录下的Dockerfile来创建镜像

docker build -f /path/to/Dockerfile

当创建完镜像后,docker会自动运行Dockerfile 内的代码

构建Docker镜像有两种方法:

1:使用docker commit命令。

2:使用docker build命令和 Dockerfile 文件。

上述操作为第二种方法生成Docker镜像,生成Docker镜像的例子如下:

# FROM pytorch/pytorch:1.12.0-cuda11.3-cudnn8-runtime
# FROM pytorch/pytorch:1.9.0-cuda11.1-cudnn8-runtime
FROM pytorch/pytorch:1.11.0-cuda11.3-cudnn8-runtime
# XXX: IN CASE apt-get update fail, you can uncomment below two lines
# RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list  && \
#    sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
# RUN echo [global]'\n'index-url = https://mirrors.aliyun.com/pypi/simple/ > /etc/pip.conf

# RUN apt-get update && apt-get install -y --no-install-recommends \
# 	# we have found python3.7 in base docker
# 	python3-pip \
# 	python3-setuptools \
# 	build-essential \
# 	&& \
# 	apt-get clean && \
# 	python -m pip install --upgrade pip

WORKDIR /workspace
ADD ./   /workspace
RUN pip config set global.index-url https://pypi.douban.com/simple/
RUN pip install scikit-image
RUN pip install SimpleITK

RUN python load_env.py

CMD ["bash", "predict.sh"]

Docker会从上到下依次运行Dockerfile的指令,代码解释如下:


FROM

指定了基础镜像(从docker hub上pull下来的镜像)


WORKDIR

指定了之后所有docker 命令的工作路径


COPY

指令将所有程序拷贝到Docker镜像中,等同于docker cp操作


RUN

指令在创建镜像时运行shell命令


CMD

指令是当Docker容器运行起来以后,执行的命令



可以根据实际需求修改Dockerfile文件



与FLARE竞赛相关

1:docker内部没有编辑器,如果想修改.bashrc文件,添加环境变量,需要自行安装vim文本编辑器

代码如下:

docker exec -it <容器名称或容器ID> bash
#进入 Docker 容器内部
apt update
apt install vim
#安装vim



版权声明:本文为Dominican原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。