以编程方式删除泊坞窗容器中的文件/文件夹

我目前正在探索如何以编程方式删除Docker容器内的文件/文件夹。 我知道我们可以使用docker cp将文件从容器复制到主机。 但是,我正在寻找像docker mv或docker rm这允许我移动或删除泊坞窗内的文件/文件夹。

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

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

docker exec <container> rm -rf <YourFile> 

但是,如果因为容器从未被删除而存在旧文件,那么通常的做法是在全部testing套件执行完成后移除容器,

新的工作应该创造新的容器。

您可以访问容器bash控制台

 #console control over container docker exec -it a5866aee4e90 bash 

那么当你在容器内时,你可以用控制台做任何事情。 我使用这个命令来查找和重命名我的jboss部署目录中的文件。 修改它如何你需要为你服务。 你可以删除mv使用rm的insted文件

 find /home/jboss/jbossas/standalone/deployments -depth -name "*.failed" -exec sh -c 'mv "$1" "${1%.failed}.dodeploy"' _ {} \; 

在docker文件定义中你可以使用

RUN rm [folder-path]

然而,使用ADD或COPY添加的东西仍然会增加图像的大小。

编辑:从主机上运行的外部程序访问正在运行的容器试试这个。

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