簡體   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