以编程方式删除驻留在 docker 容器中的文件/文件夹

新手上路,请多包涵

我目前正在探索如何以编程方式删除驻留在 docker 容器中的文件/文件夹。我知道我们可以使用 docker cp 将文件从容器复制到主机。但是,我正在寻找类似 docker mv 或 docker rm 的东西,它允许我在 docker 中移动或删除文件/文件夹。

场景是,我们正在用 Java 编写自动化测试用例,对于一种情况,我们需要从服务器的日志文件夹中复制日志文件来断言测试用例编写的日志。我们正在使用 docker cp 来复制日志文件。但是它也包含旧测试用例的日志。所以我在想是否可以在执行测试用例之前删除日志文件。它确保我复制的日志仅由我的测试用例编写。还有其他方法吗?

原文由 Jimit Joshi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

您可以使用以下命令从主机上运行的程序中删除文件

docker exec <container> rm -rf <YourFile>

但是,如果由于从未删除容器而存在旧文件,则一般做法是在所有测试套件执行完成后删除容器,

新作业应创建新容器。

原文由 sudhir sharma 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 docker 文件定义中,您可以使用

RUN rm [folder-path]

但是,使用 ADD 或 COPY 添加的任何内容仍会增加图像的大小。

编辑:要从主机上运行的外部程序访问正在运行的容器,请尝试此操作。

  1. 启动实例时将主机文件夹挂载为卷。
  2. 在主机上运行脚本或程序以删除主机上所需的文件夹,这也会影响容器文件系统。

原文由 Santanu Dey 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进