文章目录
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