docker images -f
或 docker images --filter
用于在Docker中根据特定条件过滤本地镜像列表。以下是一些具体例子:
docker images -f "dangling=true"
nginx
的镜像创建时间之后的所有镜像:docker images -f "since=nginx"
myapp
的镜像:docker images -f "reference=myapp"
docker images -f "reference=myapp:*"
docker images -f "reference=*:latest"//查找所有最新的镜像
docker images -f "reference=*t*"//查找包括t的镜像 只会查官方的
docker images -f "before=2023-12-30T14:00:00"
web
和 version=1.0
的镜像:docker images -f "label=web" -f "label=version=1.0"
需要注意的是,Docker 支持的过滤器类型可能会随着版本更新而有所变化,请查阅最新的 Docker 文档以获取完整且准确的支持过滤器列表。
如果只要显示repository
docker images --format {{.Repository}}
docker images --format {{.Repository}}:{{.Tag}}:{{.Size}}
docker search -f is-automated=true zookeeper
这条命令的作用是在Docker Hub中搜索包含关键词"zookeeper"的镜像,并且筛选出那些标记为自动构建(is-automated)为true的结果。这意味着它将只显示那些通过自动化流程构建和更新的Zookeeper镜像。
docker search -f stars=100 zookeeper
找出starts大于100的:
docker search --limit=5 zookeeper
返回搜索结果中排名前5的基于关键词 “zookeeper” 的镜像。
删除本地镜像
docker rmi -f hello-world //强制删除
移除所有镜像
docker rmi -f $(docker images -q)
docker save -o my.tar zookeeper tomcat:8.5.32
docker save zookeeper tomcat:8.5.32 > zt.tar
docker load -i my.tar
docker load < my.tar
采用SHA256哈希算法,一个镜像确定之后的摘要是不变的,因为镜像是只读的。
docker images zookeeper --digests
但由于在pull或者push镜像的时候,都会对镜像进行压缩用来减少网络带宽和传输时长,但压缩之后这个镜像的内容就被修改了,就会导致经过网络传输之后,镜像内容与其digests不一致。
为了解决上述问题,docker增加了一个分发散列值,这时候就会发送三样东西:镜像、没有压缩时的digests、压缩后的分发散列值。
在镜像被压缩之后,立即计算分发散列值,然后使该值随压缩的镜像一起发送过去,在接收方接收后,立即计算压缩镜像的分发散列值,再和携带的分发散列值对比,如果相同,就可以说明传输没有问题。