【docker概念和实践 4】(3)本地镜像提交到阿里云

news2025/1/17 1:25:25

一、说明

        本篇讲述如何将自己制作的容器转化成镜像,再将镜像推送到远端阿里云上。

二、制造一个本地容器

2.1 从远端仓库拉取ubuntu镜像

        使用镜像拉取语句:

docker pull ubuntu:20.04
docker run -it ubuntu:20.04 bash

        通过以上两句,产生本地出现ubuntu镜像,并执行此镜像的容器。尝试vim,发现vim没有安装,通过apt install vim在容器内部安装vim,尝试使用vim,使用正常。

docker ps 

显示如下:

2.2 将本地容器转化成本地镜像

        本地的容器通过commit语句提交产生本地镜像,注意和run语句是逆向操作。

        语句如下:

docker commit -a "Mr smith" -m "ubuntu for me"   c70c18ac0077 myubun:1.0

        此处:作者smith,容器描述ubuntu for me。

        查看本地镜像:

docker images

        以上将自己制作的容器生成一个镜像。

三、如何将本地镜像推到阿里云上

        关于阿里云服务,在文档【docker概念和实践 3】 注册阿里云账号、应用阿里云数据源中介绍了。因此,本节假定您已经拥有aliyun开发账号。

  • 登录进入阿里云,
  • 并采用以下操作:点菜单,找到容器镜像,点个人实例部分,如下图。

3.1 建立个人版的镜像仓库

    执行指定代码,可以生成个人镜像仓库的阿里云平台

 然后进入下面界面(无需填写)

 然后进入下面界面:

 点击建立命名空间:

 创建镜像仓库名称:

3.2  自动生成操作脚本

        此处由阿里云非常人性化地按照您的命名空间、仓库名,生成对应的操作语句,只要粘贴和少许修改,就可以操作,真可谓比help还管用的手册!

操作代码摘录如下: 

1. 登录阿里云Docker Registry
$ docker login --username=gongdiwudu registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。

2. 从Registry中拉取镜像
$ docker pull registry.cn-hangzhou.aliyuncs.com/getgongdi/myubuntu:[镜像版本号]
3. 将镜像推送到Registry
$ docker login --username=gongdiwudu registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/getgongdi/myubuntu:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/getgongdi/myubuntu:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

4. 选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录。

5. 示例
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

$ docker images
REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
$ docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
使用 "docker push" 命令将该镜像推送至远程。

$ docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816

3.3 完成本地客户端推送任务

 注意:我们以上操作建立了两个关键字( 将在本地链接用到):

  • namespace:getgongdi
  • 和仓库名称:myubuntu

        将镜像推送到Registry,只要粘贴上文的代码,改变[]内内容,机械执行就OK了。

$ docker login --username=gongdiwudu registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/getgongdi/myubuntu:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/getgongdi/myubuntu:[镜像版本号]

        以上三条命令将本地镜像推送到阿里云。

3.4 检查看阿里云平台:

        重新登录到阿里云开发平台:

 可以看到生成新的镜像内容,表明镜像推送成功。

3.5 尝试拉取以上创建的镜像

docker pull registry.cn-hangzhou.aliyuncs.com/getgongdi/myubuntu:1.0

        再次查看:docker images结果如下:

四、结论

        通过本文大家应该了解到:本地镜像、本地仓库、阿里云仓库的用法;并且能够区分commit指令和push指令的区别和应用场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode[200]岛屿数量

难度:中等题目:给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外&am…

5-4中央处理器-控制器的功能和工作原理

文章目录一.控制器的结构和功能二.硬布线控制器1.硬布线控制单元图2.微操作命令分析3.CPU的控制方式(1)同步控制方式(2)异步控制方式(3)联合控制方式4.硬布线控制单元的设计步骤(1)分…

qsort函数用法 + 模拟实现qsort函数

👦个人主页:Weraphael ✍🏻作者简介:目前是C语言学习者 ✈️专栏:【C/C】算法 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞…

论文笔记目录(ver2.0)

1 时间序列 1.1 时间序列预测 论文名称来源主要内容论文笔记:DCRNN (Diffusion Convolutional Recurrent Neural Network: Data-Driven Traffic Forecasting)_UQI-LIUWJ的博客-CSDN博客iclr 2017使用双向扩散卷积GRU,建模空间和…

目标跟踪心得篇五:MOT数据集标注、TrackEval的使用、DarkLabel不能自动跟踪解决方案及如何在MMTracking上输出跟踪评测

跟踪方向的标注成本非常很大的 ,那么我们如何尽可能一次性弄好呢? 所选标注工具:DarkLabel DarkLabel是一个轻量的视频标注软件,尤其做MOT任务非常友好,其标注可以通过脚本转化为标准的目标检测数据集格式、ReID数据集格式和MOT数据集格式。 使用之前: darklabel.yml:保…

传参的理解

前言 当我们调用函数的时候,参数是怎么传递给被调用方的,有想过这个问题吗?传递不同大小的参数对调用方式有影响吗?本文将带你探究这些问题,阅读本文需要对函数栈帧有一定的理解,并了解基本的汇编指令。 …

傅一平:2022年我的私人书单

2022年过去了,推荐我的TOP 10 书单,同时附上我的一句话评语和豆瓣的评分,这些书代表了我学习的方向,包括学习方法、思考方法、数据治理、数字化转型、系统架构、职场管理、个人修养、生活态度等。TOP 1 学习究竟是什么一句话评语…

【Ajax】HTTP超文本传输协议

一、HTTP协议简介什么是通信通信,就是信息的传递和交换。通信三要素:通信的主体通信的内容通信的方式1.1 现实生活中的通信案例:张三要把自己考清北大学的好消息写信告诉自己的好朋友李四。其中:通信的主体是张三和李四&#xff1…

Linux网络:应用层之HTTP协议

文章目录一、应用层1.协议2.网络版计算器二、HTTP 协议1. URL2. HTTP 协议格式3.查看 HTTP 请求4.发送 HTTP 响应5. HTTP 的方法6. HTTP 的状态码7. HTTP 的版本8. HTTP 常见 Header9. Cookie 与 session三、HTTP 与 HTTPS一、应用层 我们程序员写的一个个解决实际问题&#x…

jvm 堆 栈中存什么?

数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的 值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身&…

矩阵理论复习(六)

Q代表有理数,即整数和小数部分有限的分数和小数部分无限循环的分数。无限不循环的小数就是无理数。所有无理数和有理数加起来就是实数集R。与实数对应的就是虚数。 数域的定义 线性空间的定义 线性空间的基和维数 子空间的定义 子空间的判别方法 最常见的…

【唐诗学习】二、初唐诗词领路人

二、初唐诗词领路人 唐朝之前的主流诗人都是在宫廷混口饭吃,他们整天围着皇帝转,写的大多是宫廷奢靡的生活,还会拍皇帝马屁。主流诗人受前朝影响很大,就这么发展到了初唐。照这个剧情发展下去,诗歌迟早要完蛋。 可有些…

狂神聊Git~

版本控制: 版本控制的概念: 它是一种在开发的过程中用于管理我们对文件,目录或工程等内容的修改历史,方便我们查看历史记录,备份以便恢复以前的版本的软件工程技术 版本控制的作用: 用于管理多人协同开发项目的技术 实现跨区…

Tomcat进程占用CPU过高怎么办?

在性能优化这个主题里,前面我们聊过了Tomcat的内存问题和网络相关的问题,接下来我们看一下CPU的问题,CPU资源经常会成为系统性能的一个瓶颈,这其中的原因是多方面的,可能是内存泄漏导致频繁GC,进而引起CPU使…

Linux命令--查看发行版本/内核版本的方法

原文网址:Linux命令--查看发行版本/内核版本的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Linux查看发行版本和内核版本的方法。 查看发行版本 cat /etc/lsb_release 说明 这个命令适用于大部分linux发行版本(除了redhat和centos等) …

C 语言零基础入门教程(九)

C 函数 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,…

用Zybo调试CY7C68013A核心板的Slave FIFO模式

用Zybo调试CY7C68013A核心板简介CY7C68013A核心板CY7C68013程序设计硬件连接主要代码Zybo程序设计心得简介 最近在调试CY7C68013A核心板的Slave FIFO模式时,因为电路板的丝印bug,绕了一大圈。最终不但调试成功,也发现了用Zybo调试其它电路板…

C语言对数组元素进行排序

在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如:一个保存了班级学号的数组,排序后更容易分区好学生和坏学生;一…

教练,我想学设计之禅

欢迎来到PaQiuQiu的空间 本文为【教练,我想学设计之禅】,方便大家更好的阅读! <—写在前面—> 本专栏分四部分展开,设计模式与设计原则、算法与数据结构、架构设计以及实战为王。 设计模式介绍了经典的23种设计模式,设计原则重点阐述SOLID原则; 算法与数据结构详…

Linux常用命令——slabtop命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) slabtop 实时显示内核slab内存缓存信息 补充说明 slabtop命令以实时的方式显示内核“slab”缓冲区的细节信息。 语法 slabtop(选项)选项 --delayn, -d n&#xff1a;每n秒更新一次显示的信息&#xff0c;默…