前言

学校的算力平台更换为了寒武纪平台,相较于以前简单的通过 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的区别

利用 Docker 配置 Pytorch 镜像流程

Docker怎样提交镜像(把容器打成镜像)

人工智能算力平台用户文档

寒武纪平台上传 Docker 镜像的更多相关文章

  1. 上传Docker镜像到阿里云

      1.配置阿里云的镜像加速器:https://cr.console.aliyun.com/#/accelerator 2.命令行登录到阿里云的doker仓库,--username为阿里云的用户名 d ...

  2. 使用jib上传docker镜像

    Jib 无需Docker守护程序即可为Java应用程序构建优化的Docker和OCI映像-无需深入了解Docker最佳实践.它可以作为Maven和Gradle的插件以及Java库使用. 我使用的是Ma ...

  3. SpringBoot中使用Maven插件,上传docker镜像

    开启docker远程端口 我上一篇里面写了,这里暴露的路径: 18.16.202.95:2375 简单构建 配置pom.xml文件 在properties中增加一行指定远程主机的位置 <prop ...

  4. 上传docker镜像到阿里云镜像源

    阿里云docker镜像配置 阿里云用户名可以使用淘宝系的,或者新注册都行. a. 配置阿里云的镜像加速器:加速器 然后在线上创建`镜像仓库`,需要设置`命名空间`和`仓库名称`,然后接着操作下面的步骤 ...

  5. docker(10)上传本地镜像到镜像仓库

    前言 之前通过docker搭建过jenkins+python3环境,如果想要在不同的机器上搭建一样的环境,就可以将之前搭建的镜像上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境. 如果公开的话 ...

  6. (九)VMware Harbor 项目管理-上传/下载镜像

    VMware Harbor项目管理 Harbor中的项目包含应用程序的所有存储库. Harbor有两类项目: 公共:所有用户都拥有公共项目的读取权限,您可以方便地以这种方式与其他人共享一些存储库. 私 ...

  7. VMware SphereESXi上传系统镜像

    VMware SphereESXi上传系统镜像 打开右侧[摘要]选项卡 在[资源]中选择存储器中的存储,右键[浏览数据库存储] 选择工具栏[创建文件夹]图标,命名后保存 这样随后找到存储设备,浏览刚才 ...

  8. WebService支持多平台上传文件的实现

    WebService支持多平台上传文件的实现   要使用网站上传文件,在ASP.NET的范畴,我基本上能想到的有两类,一类是通过HTTP POST请求获得文件信息,另外一类是通过WebService或 ...

  9. 本地docker镜像上传Docker Hub,并且在腾讯云上pull该镜像,最后运行成功。

    1:在docker hub 上注册一个账号(本人直接能注册,有的说不能),然后创建自己的仓库. 2:登录docker hub ( longdbdocker --hub账号,longdb --仓库名称) ...

  10. mac上搭建docker镜像私服

    1.创建私服容器 docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /opt/data/registry:/t ...

随机推荐

  1. 反微服务架构(A Macro Services Framework)

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 反微服务架构(A Macro Services Frame ...

  2. 【前端】CSS实现图片文字对齐 并随着设备尺寸改变而改变大小

    效果预览 HTML源码 点击查看HTML代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <me ...

  3. 干掉EasyExcel!FastExcel初体验

    我们知道 EasyExcel 在作者从阿里离职之后就停止维护了,但在前两周 EasyExcel 原作者推出了他的升级版框架 FastExcel.以下是 FastExcel 的上手实战过程,带大家一起提 ...

  4. Netty 缓存buffer介绍及使用

    每当你需要传输数据时,它必须包含一个缓冲区.Java NIO API 自带的缓冲区类是相当有限的,没有经过优化,使用 JDK 的ByteBuffer 操作更复杂.缓冲区是一个重要的组建,它是 API的 ...

  5. Qt编写地图综合应用9-行政区划

    一.前言 行政区划在地图应用中非常有用,行政区划是行政区域划分的简称,是国家为了进行分级管理而实行的区域划分,百度地图提供的内置的函数类支持传入行政区划的名称来获取对应的边界点集合,然后根据该集合来绘 ...

  6. VC++2008、2010、2012、2015、2017等IDE中如何设置命令行参数进行程序调试

    有时我们在写程序时会从命令行中直接读入参数,形如: int main(int argc,char**argv){ //your code here return 0; } 其实在vc2010 IDE中 ...

  7. 【狂神说Java】Java零基础学习笔记-Java流程控制

    [狂神说Java]Java零基础学习笔记-Java流程控制 Scanner对象 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.ja ...

  8. 【量化读书笔记】【打开量化投资的黑箱】CH.05. 交易成本模型

    交易是有成本的,除非有足够的理由,否则便不应该进行交易. 交易的原因 增加盈利的期望值 降低亏损的期望值 对交易成本的估计 过低,会导致交易过于频繁,损失扩大. 过高,导致交易次数少,持仓时间过长. ...

  9. Android 系统使RNDIS网卡上网

    背景说明: 一位台湾客户需要采购一批SIMCOM SIM6600CE模组用于Tinker board2s,需要适配Debain系统和Android系统. 主要修改点: 1.defconfig 增加RN ...

  10. XXL-JOB原理--定时任务框架简介

    一.完整介绍地址:官方介绍 https://www.xuxueli.com/xxl-job/#/?id=%E4%B8%80%E3%80%81%E7%AE%80%E4%BB%8B 二.最新版本架构图: ...