文章目录

  • Docker 安装与阿里云镜像配置
  • Docker Desktop安装
  • Docker Toolbox安装
  • Docker基础知识
  • 使用Docker配置自己的环境
  • 复制/上传本地文件到Docker中
  • 上传自己的项目到Docker Hub
  • Docker基础命令
  • 退出容器与启动容器命令
  • 常用命令
  • Dockerfile文件使用方法-自动化脚本生成镜像
  • 如何运行Dockerfile?
  • 与FLARE竞赛相关


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

Docker生成的虚拟MAC地址会不会相同 docker 虚拟桌面_docker


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

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

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

Docker生成的虚拟MAC地址会不会相同 docker 虚拟桌面_docker_02

安装网址:

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

Docker生成的虚拟MAC地址会不会相同 docker 虚拟桌面_Docker_03

Docker Toolbox安装

安装网址:

https://github.com/docker/toolbox/releases 安装成功显示界面:

Docker生成的虚拟MAC地址会不会相同 docker 虚拟桌面_服务器_04


配置阿里云镜像

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

2:进入容器镜像服务

Docker生成的虚拟MAC地址会不会相同 docker 虚拟桌面_容器_05


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

Docker生成的虚拟MAC地址会不会相同 docker 虚拟桌面_docker_06


配置阿里云镜像

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

Docker生成的虚拟MAC地址会不会相同 docker 虚拟桌面_linux_07

2:进入docker容器内部
根据CONTAINER ID 和COMMAND进入容器内

docker exec -it 8c04e722e126 /bin/bash

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

pip install -e .
#nnunet所需配置

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

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

docker ps

Docker生成的虚拟MAC地址会不会相同 docker 虚拟桌面_linux_07

2:进入docker容器内部
根据CONTAINER ID 和COMMAND进入容器内

docker exec -it 8c04e722e126 /bin/bash

3:获取路径信息

pwd

Docker生成的虚拟MAC地址会不会相同 docker 虚拟桌面_linux_09

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