前言

学校的算力平台更换为了寒武纪平台,相较于以前简单的通过 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. django视图层与cbv源码分析

    目录 一.视图层之必会三板斧 二.JsonResponse对象 两种序列化数据的方式 方式一:使用json模块 方式二:使用JsonResponse对象 使用JsonResponse对象序列化除字典外 ...

  2. 一个.NET开源、易于使用的屏幕录制工具

    前言 一款高效.易用的屏幕录制工具能够极大地提升我们的工作效率和用户体验,今天大姚给大家分享一个.NET开源.免费.易于使用的屏幕录制工具:Captura. 工具介绍 Captura是一款基于.NET ...

  3. Java的HTTP接口测试框架Gatling

    之前讲过的<JHM>是一个java的基准测试框架,一般用于测试jdk里的API.如果要测试http接口,可以使用Gatling. 你可能用过JMeter,也是可以的 原生的Gatling是 ...

  4. 【数据库】【MySQL】创建数据库、数据表、修改数据表字段的一些基本操作

    这是一份作业,仅此而已. 代码仅供参考. # 创建数据库yggl_mllt9920 CREATE DATABASE yggl_mllt9920; # 选择数据库 USE yggl_mllt9920; ...

  5. re模块:核心函数和方法

    1.compile(pattren,flages=0)   使用任何可选的标记来编译正则表达式的模式然后返回一个正则表达式对象 2.match(pattern,string,flags=0)    尝 ...

  6. Qt音视频开发16-mpv通用接口

    一.前言 前面几篇文章,依次讲了解码播放.录像存储.读取和控制.事件订阅等,其实这些功能的实现都离不开封装的通用的接口,最开始本人去调用一些设置的时候,发现多参数的不好实现,原来需要用mpv_node ...

  7. 一套分布式IM即时通讯系统的技术选型和架构设计

    本文由冰河分享,作者博客 binghe.gitcode.host,原题"这套分布式IM即时通讯系统如何写到简历上?我给你整理好了!",本文有修订和改动. 1.引言 分布式IM即时通 ...

  8. Appium_ios自动化问题汇总

    1.使用Xcode遇到的问题 xcode-select: error: tool 'instruments' requires Xcode, but active developer director ...

  9. (五).NET6.0使用Serilog进行配置和实现日志记录

    1.首先安装Serilog六件套神装包 也可以对个别相应的包进行删除等,例如:1是读取配置文件的,如果不需要通过配置文件进行操作,就可以不使用这个包.2是打印到控制台的,如果不需要打印到控制台,也可以 ...

  10. Solution -「ZJOI 2010」「洛谷 P2570」贪吃的老鼠

    \(\mathscr{Description}\)   Link.   有 \(n\) 块奶酪,每块奶酪出现时段为 \([s_i,t_i]\),体积为 \(V_i\):有 \(m\) 只老鼠要吃奶酪, ...