当前位置: 首页 > 知识库问答 >
问题:

如何在停止的Docker容器中列出文件

宋育
2023-03-14

这个问题展示了如何从停止的容器中复制文件。这要求我知道文件的完整路径,包括其文件名。我知道要从中复制文件的目录,但我不知道它的文件名,因为它是动态生成的。如何列出已停止Docker容器中目录中的文件?

如果Docker容器正在运行,那么下面的Docker命令非常有效。但是,如果Docker容器停止,它将失败。

docker exec --privileged MyContainer ls -1 /var/log

注意:文件不存储在持久卷中。

共有3个答案

滕弘新
2023-03-14

命令docker diff*CONTAINER*将列出自容器启动以来添加、删除和更改的文件。

如果自容器启动后文件没有更改,那么您必须知道启动容器的原始图像的内容。因此,这个答案并不理想,但可以避免创建图像并运行它。

tainer-diff不同,此命令不需要首先创建Docker映像。

松昱
2023-03-14

如果无法启动容器,则始终可以导出图像(有点过头了,但…)并列出其内容:

docker export -o dump.tar <container id>

tar -tvf dump.tar

参考:Baeldung-探索Docker容器的文件系统

窦哲彦
2023-03-14

另一个问题的答案显示了如何使用另一个命令启动已停止的容器。以下是列出已停止容器中文件的命令。

  • 将停止的容器提交到新映像:test_image
    • docker提交$CONTAINER_IDtest_image
    • docker run-ti--entrypoint=sh test\u image
    • docker exec-privileged$NEW\u CONTAINER\u ID ls-1/var/log

 类似资料:
  • 问题内容: Docker提供了一种列出正在运行的容器或所有容器(包括已停止的容器)的方法。 这可以通过以下方式完成: 或通过 我们有办法只列出已停止的容器吗? 问题答案: 只能使用以下命令列出停止的容器: 要么

  • Docker为您提供了一种列出正在运行的容器或所有容器(包括停止的容器)的方法。 这可以通过以下方式实现: 或者 我们是否有办法只列出已停止的容器?

  • 问题内容: 有一个列出图像的命令,但是似乎没有对应的。 除了扎根并调查那里似乎没有办法。我想念什么吗?那是不应该做的事情吗? 问题答案: 要仅显示 正在运行的容器,请 使用给定命令: 要显示 所有容器,请 使用给定命令: 要显示 最新创建的容器 (包括所有状态),请使用给定命令: 要显示 n个最后创建的容器 (包括所有状态),请使用给定命令: 要显示 总文件大小,请 使用给定命令: 上面显示的内容

  • 问题内容: 为了解决我的应用程序的错误并调试问题,该应用程序分布在多个容器中,我经常在容器中编辑文件: 我完全懒惰并安装nano并直接在容器中进行编辑,或者 我将cp文件从容器中移出,对其进行编辑,复制并重新启动容器 这些是进入容器构建新内容之前的中间步骤,这比上述操作要花很多时间(当然,这只是中间/摆弄)。 现在,我经常破坏容器的启动程序,在这种情况下,它是节点脚本或python Web服务器脚

  • 试图修复我的应用程序在多个容器上拆分的错误和调试问题,我经常编辑容器中的文件: > 要么我完全懒惰,直接在容器中安装nano并进行编辑,要么 我将文件从容器中取出,编辑它,复制回来,然后重新启动容器 这些都是为容器构建新内容之前的中间步骤,这比执行上述操作要长得多(当然,这只是中间步骤)。 现在我经常破坏容器的启动程序,在破坏情况下是节点脚本或python webserver脚本,两者通常都因语法

  • 问题内容: 使用来自注册表的docker映像时,我经常需要查看映像容器创建的卷。 注意:我在Red Hat 7上使用Docker版本1.3.2。 例 来自Docker Registry 的官方映像在处为容器配置了一个卷。 在容器中显示体积最简洁的命令是什么? 问题答案: 使用来获取容器ID。 然后 例: 1号航站楼 2号航站楼 输出 显然是由于使用 Go 语言来实现docker命令工具。 在没有命