是的,这是非常混淆的术语。
简单的答案:
图片:单个图像。
存储库:一组图像。
详细说明:
图片:由Image ID
独特引用,则12位十六进制代码(例如91c95931e552)。 [1]
存储库:包含一个或多个图像。所以hello-world
存储库可以包含两个不同的图像:91c95931e552
和1234abcd5678
。
Image alias
- 我打算将image alias
定义为引用特定图像的别名。 image alias
的格式是repository:tag
。这样,您可以使用人性化的别名,例如hello-world:latest
而不是12位代码。
例子:
比方说,我有这些图片:
REPOSITORY TAG IMAGE ID
docker/whalesay latest fb434121fc77
hello-world latest 91c95931e552
hello-world v1.1 91c95931e552
hello-world v1.0 1234abcd5678
的仓库是:docker/whalesay
,hello-world
。
的图像是fb434121fc77
,91c95931e552
,1234abcd5678
。请注意,第2行和第3行具有相同的Image ID
,因此它们是相同的图像。
图像别名:
docker/whalesay:latest
hello-world:latest
hello-world:v1.1
hello-world:v1.0
所以hello-world:latest
和hello-world:v1.1
只是对同一图像的两个别名。
其他细节:
Repository name
格式也可以在前面加上可选的用户或命名空间,使用公共注册表像泊坞集线器时,这是非常有用的。例如。 docker/whalesay
。否则,您将遇到很多存储库名称冲突。
如果在引用图像别名时忽略了tag
,它会自动添加:latest
。所以当你指定hello-world
时,它将被解释为hello-world:latest
。警告:latest
实际上并不意味着什么特别的东西,它只是一个默认标签。
[1]实际上,完整的图像ID是一个64位十六进制代码,被截断为12位数字,但你不需要关心这一点。
[泊坞图像VS容器]的可能重复(http://stackoverflow.com/questions/23735149/docker-image-vs-container) – Vitor
不要混淆** **图像和* *图像的名称**。图像可以有许多名称:一个(唯一的)图像ID,它是一个散列,以及许多不同的存储库标签组合。 (这太令人困惑了,因为“存储库”对于图像名称的第一部分来说是一个非常糟糕的命名选择。) –
@LutzPrechelt我仍然困惑“repostiory”这个词应该是什么意思。这是一个本地的东西还是与特定图像有关?在这一点上,我甚至可能会混淆“图像”这个词甚至意味着什么。 –