Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker “a”的实际用途是什么;标签";在码头?_Docker - Fatal编程技术网

Docker “a”的实际用途是什么;标签";在码头?

Docker “a”的实际用途是什么;标签";在码头?,docker,Docker,例如,有一个使用 $docker tag friendlyhello john/入门:第1部分 $docker图像 REPOSITORY TAG IMAGE ID CREATED SIZE friendlyhello latest d9e555c53008 3 minutes ago 195MB john/get-st

例如,有一个使用

$docker tag friendlyhello john/入门:第1部分

$docker图像

REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
friendlyhello            latest              d9e555c53008        3 minutes ago       195MB
john/get-started         part1               d9e555c53008        3 minutes ago       195MB
现在这里有两张图片:
友好你好:最新的
john/get start:part1

我注意到这两个图像具有相同的
图像ID

所以我想我的磁盘上只有一个映像文件。


如果是真的,为什么我要像在操作系统中创建链接文件一样标记存储库?

您可以标记图像,以确保以后能够找到它们。如果仅存储最新版本的图像,则可能会在下一个版本中覆盖该图像,然后使用docker prune删除该图像,从而删除所有未引用的图像。简而言之,标记用于方便地识别图像(这是文件系统层的组合)。由于图像会随着时间的推移而变化,并且会看到添加更多层以形成新图像,因此标记也是进行版本控制的方便方法

当用户从Docker Hub或Google容器注册表等注册表下载您的图像时,他们可以很容易地关联从标记下载的版本

如果您熟悉git,但在本例中您正在跟踪图像的更改,那么它与使用git标记发布没有什么不同。您可以为映像标记一个版本,并将更改推送到远程存储库

以Ubuntu为例,标签被用来指代操作系统的特定版本,可能有很多。例如,这些都是Ubuntu的有效标签(请参阅):

多个标记可以指向一个容器图像。在Ubuntu中:
xenial
latest
16.04
是指向同一位置的标记,它们只是指向同一图像的多种方式。这样,因为我知道Ubuntu的
最新版本是
xenial
,版本号是
16.04
,所以我可以使用这些术语或标签从Docker Hub下载这个特定的图像


同样地,
trusty
xenial
不指向同一图像。它们指向的映像可能有共同的文件系统层,但在某个点上有所不同。

谢谢!进行版本控制怎么样?在我更改前一个图像的源代码(Dockerfile、app code等)后,是否应该重建(
$docker build
)一个带有
标记的新
图像?或者Docker在git中有一些机制,比如
分支
git合并
rolling
zesty
17.04
latest
xenial
16.04
trusty
14.04