繁体   English   中英

如何以编程方式删除另一个 Docker 容器中的文件?

[英]How can I programatically delete files in another Docker container?

我目前正在 Docker 容器中运行 Dash(Flask)应用程序,该容器将用户数据保存到名为资产的文件夹内的文件系统中。 在另一个容器中,我有一个名为 worker.py 的 Python 脚本,我想从中删除第一个容器中的文件夹。 我怎么能 go 关于这样做? 目录结构如下图:

(container1):
|- src
|  - app.py
|  - assets
|    - FolderIWantToDelete

(container2):
|- worker
|  - worker.py (the file I am running from)
|  - Dockerfile

我首先输入 shutil.rmtree("Path/To/Folder/I/Want/To/Delete") 但卡住了,因为我相信您无法指定从 container2 到 container1 的路径,因为 Docker 个容器与一个容器隔离其他。

一个想法可能是从 worker.py container2 向 container1 发送 http 删除请求,指定要使用的删除 function 和文件夹路径; 但是,我不是 web 开发人员,所以这让我很困惑。

如果需要,我可以使用更多代码/信息编辑这篇文章。 谢谢您的帮助!

解决方案:正如以下用户所指出的,在您的 docker-compose 文件中创建共享卷并将其分配给两个容器可以解决此问题。 就个人而言,我选择了不同的路线,我删除了 container1 并从 container2 运行 worker.py 作为在 app.py 中创建的线程。

您可以创建一个 docker.network 并将两个容器攻击到它上面,在这种情况下,您可以通过IMAGENAME://HOSTNAME/PATH_TO_FILE_TO_DELETE引用另一个容器的路径。 这是有关如何使用docker-compose执行此操作的指南

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM