【问题标题】:How to check if the docker image has all the files?如何检查 docker 镜像是否包含所有文件?
【发布时间】:2017-11-27 08:27:31
【问题描述】:

有没有办法检查 docker 镜像是否包含 Dockerfile 复制的所有文件,并了解镜像是否按照 Dockerfile 中的配置构建?我的情况是映像已成功构建,但是当我尝试运行它时,docker 抱怨它找不到某些文件或其他文件并且容器无法运行,所以我无法对其执行。

执行 docker inspect 没有帮助,因为它不会报告映像中的文件。有什么方法吗?

【问题讨论】:

  • 发布 Dockerfile 或 docker-compose 文件
  • 谢谢。我确实解决了这个问题。糟糕的是,我有一个没有填充的触摸 cmd。然而,问题仍然存在。当没有构建错误时,如何检查图像的内容?有输入吗?

标签: image docker exec inspect


【解决方案1】:

您可以查看文件的历史记录并检查创建映像时是否存在所有必需的文件

docker image history --no-trunc [image_name] > [file_name]

【讨论】:

    【解决方案2】:

    您可以基于该图像运行 shell:

    docker run -it <image-name> bash
    

    如果没有可用的bash,请改用sh。在那里你可以像任何 shell 一样搜索文件。

    但是可能图片中没有bash,所以使用sh

    docker run -it <image-name> sh
    

    但也许你有一个奇怪的入口点,所以覆盖它:

    docker run -it --entrypoint sh <image-name>
    

    【讨论】:

    • 我认为这不会起作用,因为它不会产生提示。此外,由于图像因任何原因无法运行,因此 shell 将不可用。可能你可以详细说明。我没有取得任何成功。
    • 我已经更新了我的答案。如果仍然无法正常工作,请向我们展示输出。
    猜你喜欢
    • 2020-12-20
    • 2020-01-13
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多