Docker镜像发布到阿里云和私有库

news2024/9/29 19:16:23

目录

一、Docker镜像

(一)概述

(二)Docker镜像加载原理

(三)镜像分层结构优势

(四)重点理解

(五)docker commit操作实例

(六)总结

二、本地镜像发布到阿里云

三、本地镜像发布到私有库


一、Docker镜像

(一)概述

镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。
 
只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。

UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union 文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
 
特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录

(二)Docker镜像加载原理

docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。
bootfs(boot file system)主要包含bootloader(boot加载器)和kernel(内核), bootloader主要是引导加载kernel,Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是引导文件系统bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。
 
rootfs (root file system) ,在bootfs之上。包含的就是典型 Linux 系统中的 /dev, /proc, /bin, /etc 等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等。 

 对于一个精简的OS,rootfs可以很小,只需要包括最基本的命令、工具和程序库就可以了,因为底层直接用Host的kernel,自己只需要提供 rootfs 就行了。由此可见对于不同的linux发行版, bootfs基本是一致的, rootfs会有差别, 因此不同的发行版可以公用bootfs。

(三)镜像分层结构优势

镜像分层最大的一个好处就是共享资源,方便复制迁移,就是为了复用
 
比如说有多个镜像都从相同的 base 镜像构建而来,那么 Docker Host 只需在磁盘上保存一份 base 镜像;
同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。

(四)重点理解

Docker镜像层都是只读的,容器层是可写的。

当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。
所有对容器的改动 - 无论添加、删除、还是修改文件都只会发生在容器层中只有容器层是可写的,容器层下面的所有镜像层都是只读的。

 (五)docker commit操作实例

Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。我们进行扩展后提交到本地成为一个新的镜像

docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
 
example:
 
docker pull ubuntu  # 从镜像仓库拉取基础ubuntu镜像(支持扩展),原始的默认Ubuntu镜像是不带着vim命令的
 
#外网联通的情况下,在容器内安装vim命令
apt-get update
apt-get -y install vim
 
#安装完成后,commit我们自己的新镜像
docker commit -m="ubuntu-add-vim" -a="zjy" a4b1b1cc54f0 atguigu/myubuntu:1.3

提交结果,可以明显的看到SIZE变大了

  

(六)总结

Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。类似Java继承于一个Base基础类,自己再按需扩展。
新镜像是从 base 镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层 

 

 

二、本地镜像发布到阿里云

网址:开放云原生应用-云原生(Cloud Native)-云原生介绍 - 阿里云

 

① 选择控制台,进入容器镜像服务 

② 选择个人实例

 

③ 创建命名空间

 

 

④ 创建镜像仓库

        

 

 

⑤ 进入管理界面获得脚本 

 

⑥ 将镜像推送到阿里云registry

 

# 登录registy
docker login --username=zzyyregistry.cn-hangzhou.aliyuncs.com

# 从阿里云镜像仓库拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/zzyy/myubuntu:[镜像版本号]

# 将镜像推送到阿里云Registry
docker login --username=zzyy registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/zzyy/myubuntu:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/zzyy/myubuntu:[镜像版本号]

 

 

三、本地镜像发布到私有库

① 初次使用需要拉取registry镜像

docker pull registry 

② 修改docker配置文件使之支持http

{
  "registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"],  #别漏了这个逗号
  "insecure-registries": ["192.168.111.162:5000"]
}

③ 运行私有库Registry,相当于本地有个私有Docker 

docker run -d -p 5000:5000  -v /zzyyuse/myregistry/:/tmp/registry --privileged=true registry

默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调

④ curl验证私服库上有什么镜像

 curl -XGET http://192.168.111.162:5000/v2/_catalog

 

 

⑤ 将要push到私有库的镜像修改符合私服规范的Tag

docker tag  镜像:Tag   Host:Port/Repository:Tag  #公式

example:

#使用命令 docker tag 将zzyyubuntu:1.2 这个镜像修改为192.168.111.162:5000/zzyyubuntu:1.2
docker tag  zzyyubuntu:1.2  192.168.111.162:5000/zzyyubuntu:1.2

⑥ push推送到私服库

docker push 192.168.111.162:5000/zzyyubuntu:1.2

⑦ curl验证私服库上有什么镜像

 curl -XGET http://192.168.111.162:5000/v2/_catalog

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

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

相关文章

如何解决nas无公网问题,实现kodbox可道云内网映射外网访问

目前,市面上有很多NAS产品,如群晖、威联通以及华硕NAS等,它们都自带提供了一些基础的文件管理功能,有的也可以直接在NAS上使用文件管理的应用程序。 kodbox可道云是一个基于 Web 技术的私有云和在线文件管理系统,有着…

考了PMP证后工资大概是多少 ?(含pmp资料)

这个岗位的不同还有每个公司的薪资也是不一样的,具体的数字肯定是没有的,但大概的比例还是有的,据PMI调查,在获得PMP证书的人当中,在PMP认证一年后,年薪有所增长的比例为66%,上涨幅度主要集中在…

抓包工具Charles(二)-移动端APP抓包(设置手机代理、安装证书)

安装好Charles之后,还只能捕获电脑的接口请求想要抓取移动设备的APP还需要设置代理、安装证书。 文章目录一、抓包原理二、手机设置网络代理1、 查看电脑的IP地址(local IP address)2、设置手机网络代理(1)iOS设备&…

美团:某动态线程池框架是官方开源的么?

大家好,我是马称。 最近,有很多同学在微信上问我这么一个问题: Hippo4j 动态线程池框架是美团开源的么? 类似于这样的问题还挺多,在这里统一回复下: 美团官方并没有开源任何关于动态线程池的框架。 美…

【深度学习】多分类问题和多标签分类问题

上一章——激活函数 文章目录什么是多分类问题Softmax贝叶斯公式softmax的损失函数多标签分类问题什么是多分类问题 在之前的课程中,我们学习了二分问题,二分问题中的所有数据会被分类为0和1(或者Ture和False)两种输出标签。但是…

Java_小项目书城

1.概述 书城的基本功能: 展示书籍上新书籍下架书籍退出应用 书城项目所涉及到的知识点: 用户交互–键盘录入分支结构,循环结构面向对象的思维,封装对象集合的使用 2.菜单的编写 这部分代码就是读取用户键盘的录入&#xff0…

Qt线程池

目录1、线程池是什么?2、Qt线程池2.1、用法例程2.2、线程池对性能的提升2.3、运行算法单线程写法线程池写法1、线程池是什么? 线程池是一种线程使用模式,它管理着一组可重用的线程,可以处理分配过来的可并发执行的任务。 线程池设…

2023最新一线大厂Java八股文强势开源,整整8w字,711页内容

前言 大家都知道每年的3月和4月都是互联网大厂疯狂招人的黄金期,也就是程序员的黄金跳槽期,所以被称为金三银四。 无论你是刚出校园大门的菜鸟,还是对跳槽蓄谋已久的老手,都会在这个时候找到新工作和迎来晋升涨薪的最佳时机。 而…

1.InfluxDB简介与安装

InfluxDB简介 InfluxDB是一个时序性数据库,适用场景数据分析,IoT设备数据采集,监控告警等。InfluxDB是采用GO语言编写,底层提供了大量的HTTP协议的API 其他语言的SDK都采用访问HTTP接口的形式对InfluxDB进行操作 InfluxDB官方一…

WPF学习:Slider — 冒泡显示值

想做一个下图所示的Slider,以冒泡的方式显示其Value值,该怎么做呢? 功能要求,当鼠标放在滑块上的时候,冒“泡”显示值;当滑块移动的时候,“泡”跟随移动。 看似简单的功能,但要完美…

扬帆优配“数字经济+实体经济”融合发展,行业增长空间大!

组织以为,数字经济已经逐步成为工业商场和资本商场的共同主题。 2月16日,国家发改委在《求是》杂志发表文章《努力推进经济完成质的有效提升和量的合理增加》。文章指出要加速开展数字经济,加速实施“东数西算”等重大工程,推进数…

计算机网络笔记(四)—— 数据链路层

点对点协议PPP 目前使用最广泛的点对点数据链路层协议 由以下三个部分构成: PPP工作状态 媒体接入控制 主要解决共享信道的协调问题 静态划分信道 复用:通过一条物理线路同时传输多路用户的信号 频分复用(FDM):占用…

DataEase 制作数据可视化大屏经验分享

前言 DataEase 简介 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便地与他人分享。 更多详细介…

ChatGPT及相关产品体验与研究

ChatGPT及相关产品体验与研究 我的Github博客仓库链接:ChatGPT及相关产品体验与研究 - Github 一、ChatGPT介绍 1. ChatGPT概述 一句话描述ChatGPT:一个能够通过对话得到你想要的答案的聊天机器人。 ChatGPT 是由 OpenAI 开发的一种基于深度学习的自然…

SPI简介与实例分析

SPI简介 SPI 协议是由Motorola提出的通讯协议 (Serial Peripheral Interface) ,是一种高速全双工的串行通信总线。 SPI 通讯使用 3 条总线 :SCK、 MOSI、 MISO ,以及若干片选线(SS、CS、NSS)。 主机要和哪个从机通信,就把对应的…

看板项目管理使用指南

作为一种项目管理方法,看板涉及创建列出任务详细信息的可视化卡片,并将它们组织到代表生产过程不同阶段的白板列表中。 今天,看板已经从工厂的白板发展到了我们电脑屏幕上的数字看板应用程序形式。现在的看板项目管理方法可帮助团队管理编辑…

CentOS Stream 8配置DNS

1:用CentOS搭建DNS的目的是想解析一台下载服务器,IP地址172.18.0.58,现在是用IP地址方的式访问,想搭建DNS服务器用域名的方式访问。 使用下面的命令查看一下当前系统的Bind版本。 yum info bind 版本是9.11.36.我的CentOS是最小…

KDGK-703S便携式综合校验仪(毫伏发生器)

一、产品简介 KDGK-703S便携式综合校验仪(毫伏发生器)是一种集数显式电压、电流、频率标准信号源、Pt100 铂电阻温度模拟标准信号源、数字式电压、电流、频率测量功能于一体的高精度、高分辨率、多用途的自动化仪表校准仪器。 它具有信号输出和测试功能&…

有关eclipse的使用tips

一、alt/键 会产生单词提示,可以提高编程速度。例如不需要辛辛苦苦的打出:System.out.println();整句,只需要在eclipse中输入syso,然后按住ALT/就会出来System.out.println();在alt键/不管用的情况下,可使用以下方法来…

HDMI AVI InfoFrame

AVI/AUDIO/VSI Infoframe都是HDMI的辅助数据类别,HDMI遵循CEA-861规范,CEA 第八章--CONTROL AND CONFIGURATION 8.2定义了三种InfoFrame。 一个InfoFrame packet载送一个InfoFrame,根据HDMI协议规范,其大小为30字节一个CheckSum。…