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

flseospp  于 2023-08-03  发布在  Docker
关注(0)|答案(3)|浏览(188)

我目前正在探索如何以编程方式删除Docker容器中的文件/文件夹。我知道我们可以使用docker cp将文件从容器复制到主机。然而,我正在寻找类似docker mv或docker rm的东西,它允许我在docker中移动或删除文件/文件夹。
这个场景是,我们正在用Java编写自动化测试用例,对于一个用例,我们需要从服务器的日志文件夹中复制日志文件,以Assert测试用例编写的日志。我们使用docker cp来复制日志文件。但是,它也包含旧测试用例的日志。所以我在想是否可以在执行测试用例之前删除日志文件。它确保我复制的日志是由我的测试用例写的。还有别的路吗

ctehm74n

ctehm74n1#

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

docker exec <container> rm -rf <YourFile>

字符串
然而,如果因为容器从未被移除而存在旧文件,则一般的做法是在所有测试套件执行完成后移除容器。
新作业应创建新容器。

ktca8awb

ktca8awb2#

在docker文件定义中你可以使用
第一个月
但是,使用ADD或COPY添加的任何内容仍然会增加图像的大小。
EDIT:要从运行在主机上的外部程序访问正在运行的容器,请尝试以下操作。
1.启动示例时将主机文件夹装载为卷。
1.在主机上运行脚本或程序以删除主机上所需的文件夹,这也会影响容器文件系统。

rm5edbpk

rm5edbpk3#

您可以访问容器bash控制台

#console control over container
docker exec -it a5866aee4e90 bash

字符串
然后当你在容器中时,你可以用控制台做任何事情。我使用这个命令来查找和重命名jboss部署目录中的文件。修改它,让它为你服务。您可以删除文件也insted的mv使用rm

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

相关问题