[英]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.