docker镜像版本号规则定义

news/2024/2/24 8:46:48/文章来源:https://blog.csdn.net/weixin_42775581/article/details/135497867

一、语义化版本号(Semantic Versioning)

<major version>.<minor version>.<patch version> 是一种常用的版本号命名规则,也被称为语义化版本号(Semantic Versioning)。其中:

  • <major version>:表示主要版本号,当软件发生不兼容的变化时需要更新此版本号;
  • <minor version>:表示次要版本号,当软件增加新功能但仍然向下兼容时需要更新此版本号;
  • <patch version>:表示修订号,当软件进行了bug修复或者进行了一些不影响兼容性的修改时需要更新此版本号。
    例如,假设一个软件的版本号是1.2.3,那么这个软件的主要版本号是1,次要版本号是2,修订号是3。如果软件升级后新增了一些新功能,但是没有破坏兼容性,那么可以将版本号更新为1.3.0。如果软件发生了不兼容的变化,那么需要将版本号更新为2.0.0。这种命名规则可以让用户清楚地了解软件版本的变化情况,从而更好地管理和使用软件。

二、docker镜像tag定义规则

Docker的tag是用于标识Docker镜像版本的一个字符串,通常格式为<image name>:<version>。其中<image name>指的是镜像的名称,<version>则是镜像的版本号。

在定义Docker镜像的tag时,建议使用语义化版本号(Semantic Versioning),即<major version>.<minor version>.<patch version>格式,例如1.2.3。这样可以清晰地表示镜像版本的重要性和更新程度,方便用户进行版本控制和管理。

此外,也可以在tag中加入其他的信息,例如构建日期、Git commit哈希值等,以便于更好地追踪镜像的变更历史和来源。例如,可以使用如下的格式:<image name>:<version>-<build date>-<git commit hash>

Git commit哈希值
Git commit哈希值是Git版本控制系统中,用于唯一标识每一个提交(commit)的一个40个字符长的十六进制字符串。这个哈希值是由Git系统根据提交的内容计算出来的,可以用来验证提交的完整性和唯一性,也可以用来对比不同版本之间的差异。

在Git中,每一个提交都包含了提交者的信息、提交时间、提交的内容等元信息,并且每一个提交都有一个唯一的哈希值与之对应。当我们需要查看某个提交的历史记录、回滚某个提交、或者将不同版本之间的差异进行比较时,就需要使用这个哈希值来进行操作。

通常,Git哈希值的前几个字符已经足够唯一,因此在标记Docker镜像版本时,可以使用Git哈希值的前几个字符作为tag的一部分,以便于更好地追踪镜像的来源和变更历史。例如,可以使用如下的格式::-。

示例
当使用<image name>:<version>-<build date>-<git commit hash>的格式为 Docker 镜像打标签时,具体的例子如下:

假设你有一个名为 myapp 的 Docker 镜像,版本为 v1.0.0,构建时间为 2024-01-10 10:30:00,对应的 Git commit hash 值为 a16690,那么你可以将此镜像打上如下的标签:

myapp:v1.0.0-20240110-a16690

其中 myapp 是镜像的名称,v1.0.0 是镜像的版本号,20240110 是构建时间,a16690 是 Git commit hash 值的前几位。

这个标签可以很好地标识这个 Docker 镜像的版本和构建时间,也可以帮助你更好地追踪这个镜像的来源和变更历史。如果你在将来需要基于此镜像构建新的镜像,也可以很方便地知道这个镜像的具体版本和来源。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网智能控制器—福建蜂窝物联网科技有限公司

什么是物联网智能控制器&#xff1f; 物联网智能控制器是蜂窝物联自主研发的一种远程测控设备(RTU)&#xff0c;负责对现场信号、工业设备的监测和控制。本质上是一个模块化封装的微型计算机设备&#xff0c;将相应的一些功能进行了封装&#xff0c;无需进行电路设计和硬件程序…

为什么使用双token实现无感刷新用户认证?

单token机制 认证机制&#xff1a;对与单token的认证机制在我们项目中仅使用一个Access Token的访问令牌进行用户身份认证和授权的方案处理。 不足之处&#xff1a; 安全性较低(因为只有一个token在客户端和服务器端之间进行传递&#xff0c;一目Acess Token被截获或者被泄露…

在程序中链接静态库 和 动态库

9. 链接库 在编写程序的过程中&#xff0c;可能会用到一些系统提供的动态库或者自己制作出的动态库 或者静态库文件&#xff0c;cmake中也为我们提供了相关的加载动态库的命令hehedalinux:~/Linux/loveDBTeacher-v3$ tree . ├── CMakeLists.txt ├── include │ └── …

远程开发之vscode端口转发

远程开发之vscode端口转发 涉及的软件forwarded port 通过端口转发&#xff0c;实现在本地电脑上访问远程服务器上的内网的服务。 涉及的软件 vscode、ssh forwarded port 在ports界面中的port字段&#xff0c;填需要转发的IP:PORT&#xff0c;即可转发远程服务器中的内网端…

Monorepo-uniapp 构建分享

Monorepo uniapp 构建灵感&#xff1a;刚好要做一个项目&#xff0c;于是想到升级一下之前自己写的一个vue3tspiniauno的模版框架&#xff0c;其实那个框架也不错&#xff1b;只是感觉还差点东西&#xff0c;我已经用那个小框架写了两三个项目&#xff1b;轻巧实用。为什么选…

idea使用docker-compose发布应用程序

非常重要的话说在前头 idea要想使用docker-compose&#xff0c;不能使用ssh创建idea Docker&#xff0c;而需要使用socket创建idea Docker。 socket docker是不安全的&#xff0c;任何人都可以访问你的docker&#xff0c;所以只能测试环境使用&#xff0c;请勿在正式环境使用s…

ubuntu安装mysql(tar.xz)

0:本机Ubuntu的版本为 腾讯云 18.04 1&#xff1a;下载地址 MySQL &#xff1a;&#xff1a; 下载 MySQL 社区服务器 2&#xff1a;上传文件到服务器 3:解压 sudo sumv mysql-8.2.0-linux-glibc2.17-x86_64-minimal.tar.xz /usrtar -xvf mysql-8.2.0-linux-glibc2.17-x86_6…

推荐一款.NET开发的物联网开源项目

物联网&#xff08;IoT&#xff09;是一个正在快速发展的技术领域&#xff0c;它涉及到各种设备、物体和系统的互联。所以各种物联网平台和物联网网关项目层出不穷&#xff0c;在物联网&#xff08;IoT&#xff09;领域&#xff0c;.NET平台扮演着重要的角色。作为一款广泛使用…

【日常聊聊】ChatGPT和文心一言哪个更好用

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; 日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 介绍 哪个在文本生成上有优势 结语 我的其他博客 前言 随着人工智能技术的不断发展&#xff0c;自然语言处理领域也取得了显…

C语言从入门到实战——数据在内存中的存储方式

数据在内存中的存储方式 前言1. 整数在内存中的存储2. 大小端字节序和字节序判断2.1 什么是大小端2.2 为什么有大小端2.3 练习2.3.1 练习12.3.2 练习22.3.3 练习32.3.4 练习42.3.5 练习52.3.6 练习6 3. 浮点数在内存中的存储3.1 练习3.2 浮点数的存储3.2.1 浮点数存的过程3.2.2…

C++ 多态

文章目录 多态的概念虚函数抽象类多态的原理虚函数指针与虚函数表多继承与虚函数表菱形虚拟继承 动态绑定与静态绑定 多态的概念 多种状态 —— 不同对象去完成某个行为&#xff0c;会有不同的状态 虚函数 virtual void Func(){;} //虚函数&#xff0c;和之前的虚继承没什么…

华为设备端口镜像设置

核心代码&#xff1a; observe-port int 编号 int 编号 mirror to observe-port both | inbound | outbound #both:将镜像端口的入和出流量同时复制到观察者端口 #inbound:将镜像端口的入流量复制到观察者端口 #outbound:将镜像端口的出流量复制到观察者端口配置后可使出入端口…

解决ELK日志收集中Logstash报错的关键步

ElK执行日志收集的时候logstash报错&#xff1a; Failed to execute action {:action>LogStash::PipelineAction::Create/pipeline_id:main, :exception>“LogStash::ConfigurationError”, :message>“Expected one of [^\r\n], “\r”, “\n” at line 88, column 4…

C++学习笔记——标准模板库

目录 一、简介 二、STL概述 2.1STL是什么&#xff1f; 2.2STL的优势 三、容器&#xff08;Containers&#xff09; 3.1序列式容器&#xff08;Sequence Containers&#xff09; 3.2关联式容器&#xff08;Associative Containers&#xff09; 3.3容器适配器&#xff08;…

python统计分析——操作案例(模拟抽样)

参考资料&#xff1a;用python动手学统计学 import numpy as np import pandas as pd from matplotlib import pyplot as plt import seaborn as snsdata_setpd.read_csv(r"C:\python统计学\3-4-1-fish_length_100000.csv")[length] #此处将文件路径改为自己的路…

centos 7 上如何安装chrome 和chrome-driver

centos 7 上如何安装chrome 和chrome-driver 查找自己的服务器是什么系统 cat /etc/os-release这里以centos linux 7为例 下载google-chrome安装包 wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm安装chrome sudo yum localinstall go…

从 PDF 删除PDF 页面的 10 大工具

PDF 文件是全世界几乎每个人最常用的页面之一。借助 PDF 文件&#xff0c;您可以通过任何在线或离线媒体轻松共享信息。但是&#xff0c;如果您想编辑这些 PDF 文件&#xff0c;那么这个过程就很难改变&#xff0c;因为保持文件的原始形式和质量很重要。应该注意的是&#xff0…

机器学习激活函数

激活函数 激活函数是人工神经网络中的一个重要组成部分。它们用于向神经网络中添加非线性因素&#xff0c;使得网络能够解决复杂问题&#xff0c;如图像识别、语言处理等。激活函数的作用是决定一个神经元是否应该被激活&#xff0c;也就是说&#xff0c;它帮助决定神经元的输…

NLP论文阅读记录 - 2022 | WOS 用于摘要法律文本的有效深度学习方法

文章目录 前言0、论文摘要一、Introduction1.1目标问题 二.相关工作三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结 前言 Effective deep learning approaches for summarization of legal texts&#xff08;22&#x…

android 13.0 Launcher3长按app弹窗设置为圆角背景功能实现二

1.前言 在13.0的系统ROM定制化开发中,在进行一些Launcher3的定制化开发中,在使用app的弹窗的功能时,会弹出应用信息和 微件之类的内容,所以在定制需求中,需要默认设置为圆角背景,接下来就来分析下相关功能的实现如图: 2.Launcher3长按app弹窗设置为圆角背景功能实现二的…