为镜像命名

创建镜像时 docker build 命令时已经为镜像取了个名字,例如: 

docker build -t ubuntu-with-vi

这里的 ubuntu-with-vi 就是镜像的名字。通过 dock images 可以查看镜像的信息。

1 root@ubuntu:~# docker images ubuntu-with-vi
2 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
3 ubuntu-with-vi      latest              b5410dfa9a42        11 days ago         170MB
4 root@ubuntu:~# 

这里注意到 ubuntu-with-vi 对应的是 REPOSITORY,而且还有一个叫 latest 的 TAG

实际上一个特定镜像的名字由两部分组成:

  • repository
  • tag
[image name] = [repository]:[tag] 

如果执行 docker build 时没有指定 tag,会使用默认值 latest。其效果相当于:

docker build -t ubuntu-with-vi:latest

tag 常用于描述镜像的版本信息,比如 httpd 镜像:

当然 tag 可以是任意字符串,比如 ubuntu 镜像:

千万别被 latest tag 给误导了。latest 其实并没有什么特殊的含义。当没指明镜像 tag 时,Docker 会使用默认值 latest,仅此而已。虽然 Docker Hub 上很多 repository 将 latest 作为最新稳定版本的别名,但这只是一种约定,而不是强制规定。所以我们在使用镜像时最好还是避免使用 latest,明确指定某个 tag,比如 httpd:2.3,ubuntu:xenial。

tag 使用最佳实践

每个 repository 可以有多个 tag,而多个 tag 可能对应的是同一个镜像。

假设现在发布了一个镜像 myimage,版本为 v1.9.1。那么我们可以给镜像打上四个 tag:1.9.1、1.9、1 和 latest。

我们可以通过 docker tag 命令方便地给镜像打 tag。

1 docker tag myimage-v1.9.1 myimage:1
2 docker tag myimage-v1.9.1 myimage:1.9
3 docker tag myimage-v1.9.1 myimage:1.9.1
4 docker tag myimage-v1.9.1 myimage:latest

一段时间后发布了 v1.9.2。这时可以打上 1.9.2 的 tag,并将 1.9、1 和 latest 从 v1.9.1 移到 v1.9.2。

1 docker tag myimage-v1.9.2 myimage:1
2 docker tag myimage-v1.9.2 myimage:1.9
3 docker tag myimage-v1.9.2 myimage:1.9.2
4 docker tag myimage-v1.9.2 myimage:latest 

之后,v2.0.0 发布了。这时可以打上 2.0.0、2.0 和 2 的 tag,并将 latest 移到 v2.0.0。

1 docker tag myimage-v2.0.0 myimage:2
2 docker tag myimage-v2.0.0 myimage:2.0
3 docker tag myimage-v2.0.0 myimage:2.0.0
4 docker tag myimage-v2.0.0 myimage:latest

这种 tag 方案使镜像的版本很直观,在选择非常灵活:

  1. myimage:1 始终指向 1 这个分支中最新的镜像。
  2. myimage:1.9 始终指向 1.9.x 中最新的镜像。
  3. myimage:latest 始终指向所有版本中最新的镜像。
  4. 如果想使用特定版本,可以选择 myimage:1.9.1、myimage:1.9.2 或 myimage:2.0.0

----------------------引用来自-----------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587619&idx=1&sn=084d11955c8d4ca55eaf118e6784d689&chksm=8d3080baba4709ac8891081e6744ca50b4a02cf67c28348305d1a6b0e8ca582e29f3745c422d&scene=21#wechat_redirect

转载于:https://www.cnblogs.com/gsophy/p/10238455.html

第 3 章 镜像 - 018 - 镜像命名的最佳实践相关推荐

  1. 15 个变量和方法命名的最佳实践

    1.在每个代码范围内使用足够短和足够长的名称:例如循环计算器用一个字符就可以了,如i:条件和循环变量用一个单词,方法名1-2个单词,类名2-3个单词,全局变量3-4个单词组成 2.为变量指定一些专门名 ...

  2. html 表单命名规范,最佳实践:按HTML ID或名称属性访问表单元素?

    最佳实践:按HTML ID或名称属性访问表单元素? 正如任何经验丰富的JavaScript开发人员所知,有很多(太多)方法可以做同样的事情.例如,假设您有一个文本字段,如下所示: 在JavaScrip ...

  3. 第 3 章 镜像 - 014 - 镜像的缓存特性

    Docker 会缓存已有镜像的镜像层,构建新镜像时,如果某镜像层已经存在,就直接使用,无需重新创建. 举例说明 1 root@ubuntu:~# cat Dockerfile 2 FROM ubunt ...

  4. 如何使用Aliyun容器镜像服务对海外gcr、quay仓库镜像进行镜像拉取构建?

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 本章目录: 0x00 前言简述 0x01 操作实践 原文地址: 如何使用Aliyun容器镜像服 ...

  5. 杂项-镜像:镜像(一种文件类型)

    ylbtech-杂项-镜像:镜像(一种文件类型) 镜像(Mirroring)是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像. 镜像是一种文件存储形式,可以把许多文件做成 ...

  6. Dockerfile构建镜像最佳实践

    参考文章:Dockerfile构建镜像最佳实践 在前文Dockefile及命令详解中我们已经学习了如何通过Dockerfile构建镜像以及命令的详细说明,但是在生产环境或项目使用时如何构建出一个尽可能 ...

  7. Docker容器镜像安全最佳实践指南

    文章目录: 0x02 Docker 容器安全最佳实践 1.主机安全配置 1.1 更新docker到最新版本 1.2 为容器创建一个单独的分区 1.3 只有受信任的用户才能控制docker守护进程 1. ...

  8. 镜像、镜像文件以及挂载镜像

    镜像(Mirroring):是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像. 镜像是一种文件存储形式,可以把许多文件做成一个镜像文件,与GHOST等程序放在一个盘里用G ...

  9. dockerfile构建镜像的命令_编写Dockerfile的最佳实践

    虽然 Dockerfile 简化了镜像构建的过程,并且把这个过程可以进行版本控制,但是很多人构建镜像的时候,都有一种冲动--把可能用到的东西都打包到镜像中.这种不正当的 Dockerfile 使用也会 ...

最新文章

  1. Python代码发现链表中的环并输出环中的第一个元素
  2. EXCEL VBA 导入图片自适应大小
  3. mysql5.6的my.cnf配置详解
  4. haar级联分类器--人脸检测和匹配
  5. 基于OpenCV的图像去雾程序(Single Image Haze Removal Using Dark Channel Prior)
  6. 再谈“学微积,用手机”
  7. 王者荣耀美化包制作教程(一;进阶)
  8. 3dmax的学习技巧大全
  9. (Java)输入一个字母,若是小写字母,则变为大写输出,否则,原样输出
  10. 拓嘉启远电商:拼多多缺货会降权吗?如何处理
  11. 服务器的公共显示屏,网络公共广播系统主机服务器-星时华熠官网 - 航天信广...
  12. Android入门小项目--微信登录界面源码(倒计时、fragement切换、activity信息传递)
  13. 尚硅谷2021新版spring5课堂笔记
  14. 部件级、处理机级和处理机间流水线
  15. 计算机组成原理——移位运算
  16. 【GEE】批量下载全球降水量GPM数据 (NASA)
  17. 绘画工具商城小程序开发,释放绘画市场消费潜力
  18. c语言位段实现字节异或,C语言-位运算-小结
  19. DOM-21【键盘事件、贪吃蛇运动原理】
  20. 岩板铺地好吗_岩板可以铺贴地面吗

热门文章

  1. app+java_‎App Store 上的“Java大全”
  2. java excel中删除两列_Java 插入、隐藏/显示、删除Excel行或列
  3. diff算法阮一峰_【重学数据结构与算法(JS)】字符串匹配算法(三)——BM算法
  4. leetcode181. 超过经理收入的员工(SQL)
  5. 借汉诺塔理解栈与递归
  6. C++(STL):21---deque之源码剖析
  7. 我对STL的一些看法(四)认识deque容器
  8. 剑指offer_03
  9. 为什么你应该参与到开源项目中
  10. 互联网商业模式:增值还是减值?