什么是Docker镜像引用?

3

Docker 文档 在很多地方提到了镜像引用。然而,运行 docker images 命令会列出具有以下属性的镜像清单:REPOSITORY、TAG、IMAGE ID、CREATED、SIZE - 没有引用。那么 '引用' 是 ID 或摘要的同义词,还是其他什么东西?


它是存储库和标签。例如:busybox:latest - Federkun
2个回答

3

Docker镜像引用是REPOSITORY和TAG的组合,格式为REPOSITORY:TAG,它们都由:分隔。因此,如果您有一个REPOSITORY为IMAGE1并且标记为latest的图像,则图像引用将是IMAGE1:latest。知道图像引用将帮助您通过运行以下命令按引用过滤docker镜像列表:

docker images --filter=reference='myDocker*:*dev'

该命令将返回所有镜像仓库名称以myDocker开头且标签名称以dev结尾的Docker镜像。

小心通配符: 对于“目录”,即两个“/”之间的任何内容,您必须使用**而不是* - Marcel
@Marcel提出了一个很好的观点,但不要采纳这个建议。**模式没有支持。在moby/moby中有一个未解决的问题需要添加它。你必须使用*/*/*:*,如果你不知道有多少斜杠,那么这是一种无法修复的限制。 - AlanSE
@AlanSE你能给我提供问题的链接吗? - undefined

1
补充Kelvin的回答,Reference是你将与tag一起使用的Repository。请查看以下示例。
$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              e02e811dd08f        5 weeks ago         1.09 MB
busybox             uclibc              e02e811dd08f        5 weeks ago         1.09 MB
busybox             musl                733eb3059dce        5 weeks ago         1.21 MB
busybox             glibc               21c16b6787c6        5 weeks ago         4.19 MB

正如您在上面所看到的,我的参考文献分别是
busybox:latest
busybox:uclibc
busybox:musl
busybox:glibc

如果您只使用busybox作为参考,它将默认使用latest标签。 您也可以在参考过滤器上筛选图像。
docker images --filter=reference='busy*:*libc'
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             uclibc              e02e811dd08f        5 weeks ago         1.09 MB
busybox             glibc               21c16b6787c6        5 weeks ago         4.19 MB

当使用 FROM 指令构建镜像时,您还需在 Dockerfile 中使用图像引用。
FROM busybox #Reference is used as you can see and automatically, `latest` tag will be pulled
...

参考链接:https://docs.docker.com/engine/reference/commandline/images/

参考链接:https://docs.docker.com/engine/reference/builder/#from


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接