Docker实践(14) – Docker tag

上一篇文章中你通过docker commit保存了容器的状态,并且得到一个随机的镜像ID。记住和管理巨大数量的镜像ID非常困难。使用Docker的tag功能可以给镜像设置一个可读的名称,提醒你镜像创建的目的是什么。掌握这个技术使你对镜像的用途一目了然,使得管理你机器上的镜像变得非常容易。

问题

你想方便地引用和存储一个Docker commit。

解决方法

使用docker tag命名你的提交。

讨论

tag的基本用法很简单:

  1. $ docker tag 071f6a36c23a19801285b82eafc99333c76f63ea0aa0b44902c6bae482a6e036 imagename

创建了一个可以引用此镜像的名称,如:

  1. docker run imagename

这个名称比随机的ID容易记多了。
如果你想与他人共享你的镜像,还需要了解更多的tag知识。tag的相关术语可能会有点混乱。像image,name和repository有时候可互相交换使用。如下定义:

  • Image – 一个只读层
  • Name – 镜像的名称,如“todoapp”
  • Tag – 作为动词,指的是给镜像设置一个名称,作为名词,是镜像名称的修饰符
  • Repository – 已tag的镜像集合一起组成容器的文件系统
  • 可能最容易引起混乱的术语是image和repository。我们一直使用术语image来宽松地表示产生容器的层集合,但技术上,image是递归地引用其父层的单个层。repository是托管的,意味着它存储在某个地方(不管是在你的Docker daemon或者一个registry上)。此外,repository是tagged的镜像的集合来组成容器的文件系统。
    可以用Git类比帮助我们理解。当克隆一个Git repository时,你check out了当时请求点的文件状态。这类似于image。repository是文件每次提交的整体历史记录。因为check out是指向了最上层。当你克隆时也会包含其它所有层。
    我们来看下Ubuntu镜像。当你拉取Ubuntu镜像并执行docker images时,你会看到如下输出:

    1. $ docker images
    2. REPOSITORY  TAG    IMAGE ID        CREATED       VIRTUAL SIZE
    3. ubuntu    trusty   8eaa4ff06b53    4 weeks ago    192.7 MB
    4. ubuntu    14.04    8eaa4ff06b53    4 weeks ago    192.7 MB
    5. ubuntu    14.04.1  8eaa4ff06b53    4 weeks ago    192.7 MB
    6. ubuntu    latest   8eaa4ff06b53    4 weeks ago    192.7 MB

    Repository列列出托管层集合称为“ubuntu”。通常称为镜像。Tag列列出四个不同的名称(trusty, 14.04, 14.04.1, 和latest)。Image ID列列出相同的镜像ID。因为这些不同的tag名称指向同一个镜像。这说明了你可以对同一个镜像设置多个tag。

    标签:Docker 发布于:2019-11-20 20:58:52