寒武纪平台上传 Docker 镜像
前言
学校的算力平台更换为了寒武纪平台,相较于以前简单的通过 Linux 用户隔离,使用门槛有所提升。但从整体来看,这样拥有更好的隔离性,在 docker 中即便搞崩了也可以重新来过,可以避免因他人的误操作而导致自己的东西丢失。
安装Docker
从 Docker 官网 下载 Docker 桌面版 ,安装过程均默认即可。
安装完成后启动 Docker Desktop ,修改 daemon.json 配置(在 C:\Users\你的账户名\.docker\
目录下也可以找到该配置文件) :
将以下内容添加到其中(注意在上一个中括号结束后添加一个 , ):
"insecure-registries": [
"docker-user.cambricon.com:30080"
],
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
其中 insecure-registries
配置为平台上传镜像时所需;registry-mirrors
为国内 Docker 镜像源,用来提升镜像下载速度。
下载镜像
在 DockerHub 中找到所需的镜像,复制右侧的命令到终端执行。
pytorch 镜像的地址为 Docker: pytorch/pytorch ,例如本文所下载的为 1.4-cuda10.1-cudnn7-devel 版本。其中 devel 和 runtime 的区别可参考 【docker-cuda】——base,runtime,devel的区别 ,按需下载。
下载完成后可在 Docker Desktop 的 Images 中看到,此时可通过命令启动该镜像(注意替换自己的镜像名称):
docker run -it pytorch/pytorch:1.4-cuda10.1-cudnn7-devel /bin/bash
其中,/bin/bash
命令可以在容器启动后进入 Linux 系统的 shell 中,用来操作 Linux 系统。
同时,执行命令后在 Containers 中看到一个新的容器(通俗的说,容器是可操作的镜像):
容器使用
如果想从 Docker Desktop 中启动容器的话,可以点击对应的启动按钮,当容器状态变成运行中后,再点击容器名称位置,再点击终端,就可以操作容器了。同样的,输入 /bin/bash
进入 shell 。
此时即可对容器进行其它操作 。
进入到 Linux 系统后可通过此命令修改 pip 源:
pip config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple
如需使用其它工具,例如 vim 等,可使用 apt 进行安装:
apt-get update
apt-get install -y vim
查看包列表:
pip list
将容器配置为自己所需要的环境后,通过以下命令将其打包为一个新的镜像:
docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG]
打包成功后可在 Images 中看到,例如我之前打包的 pccnn:1.0 。
上传镜像
首先需要修改电脑 hosts 文件(该文件在 C:\Windows\System32\drivers\etc
目录下 ),在末尾添加以下内容:
183.175.12.11 docker-user.cambricon.com
修改好 hosts 后,使用终端进行登录,在终端中执行以下命令:
docker login docker-user.cambricon.com:30080 -u 你的邮箱 -p 你的密码
将已经打包好的镜像添加一个标签( project 要修改为你所在的项目),此处以 pccnn:1.0 为例:
docker tag pccnn:1.0 docker-user.cambricon.com:30080/project/pccnn:1.0
之后将 pccnn:1.0 镜像 push 到平台:
docker push docker-user.cambricon.com:30080/project/pccnn:1.0
等待 push 完成后就可以在平台中看到。要注意的是,只有为其设置 适用功能 后才可以在对应功能中使用。
之后就可以在平台使用此镜像了。
注意
本文中有关于平台私有仓库的相关配置均来源于学校平台使用文档,切勿照搬。如遇到问题请咨询平台管理员。
参考
【docker-cuda】——base,runtime,devel的区别
人工智能算力平台用户文档