首页 > 解决方案 > 如何列出本地存储的清单

问题描述

当我这样做时,docker manifest create ...此清单存储在本地,并且在我这样做之前它不会被推送到注册表,docker manifest push ...但我不确定它在此期间的位置,在它被推送之前。

我知道我可以删除本地存储的清单,docker manifest rm ...但我的目标是清理我创建的所有被遗忘的清单,那么如何列出所有本地存储的清单?

我期望docker manifest ls但不存在这样的命令。

标签: docker

解决方案


有点惊讶,这在任何地方都没有记录。我不得不通过阅读以下源代码来自己调查docker-cli

  • docker manifest create命令在command/manifest/create_list.go. 它最终调用manifestStore.Save.

  • manifestStore是从 中获得的,dockerCli.ManifestStore()其实现command/cli.go方式如下:

    func (cli *DockerCli) ManifestStore() manifeststore.Store {
        // TODO: support override default location from config file
        return manifeststore.NewStore(filepath.Join(config.Dir(), "manifests"))
    }
    

~/.docker/manifests所以简而言之,您可以通过列出或删除(或更准确地说${DOCKER_CONFIG}/manifests)的内容来列出或删除所有清单。

这不是很优雅,但目前没有更好的选择 AFAIK。


推荐阅读