[英]Mounting an S3 bucket in docker in a clearml agent
在將用作 ClearML 代理的 docker 映像中安裝 S3 容器的最佳實踐是什么? 我可以想到 3 個解決方案,但目前無法使任何解決方案工作:
我建議您查看網關后面的存儲網關 S3 ,您可以使用 NFS、EFS 或 S3 存儲桶。
有多種方法可以做到這一點。 您也可以使用 CSI 驅動程序來連接 S3。
https://github.com/ctrox/csi-s3
如果可以使用 rclone 是不錯的選擇,它會將數據同步到 POD 主機系統,因為如果存在大文件,由於文件大小和網絡延遲可能需要一些時間。
個人建議S3 是 object 存儲,所以如果您期待進行文件操作,例如寫入文件或 zip 文件,根據我的個人經驗,可能需要時間進行操作。
請記住,s3 不是文件系統,而是 object 存儲 - 雖然掛載是一個非常有用的功能 - 我不會利用文件讀取或創建以外的任何東西 - 不要嘗試 append 文件,不要嘗試使用文件系統詭計
如果是這種情況,我建議對容器使用NFS或SSD 。
而如果我們尋找s3fs-fuse它具有分段上傳和 MD5 和本地緩存等優勢。
您可以編寫自己的腳本的最簡單方法,該腳本將與 HTTP 上的 S3 存儲桶目錄同步到本地目錄,否則存儲網關 S3是不錯的選擇。
Amazon S3 文件網關提供了一種無縫連接到雲的方式,以便將應用程序數據文件和備份映像作為持久對象存儲在 Amazon S3 雲存儲中。 Amazon S3 文件網關通過本地緩存提供對 Amazon S3 中數據的基於 SMB 或 NFS 的訪問。
我能夠獲得另一個完全可以工作的選項,即在 WSL 中安裝一個驅動器,然后將其傳遞給 Docker。 讓我們開始吧:
為什么不在 Windows 本身中托管,為什么要在 WSL 中進行 rclone?
在 Windows 中的 ClearML 中安裝驅動器的步驟:
/data/my-mount
(這需要在/data
- 我不知道為什么,我無法通過 Google 搜索找到,但我在這里找到了它)--config
選項)。/data/my-mount
而不是/data/my mount
。 我打開了一個關於此的錯誤。docker run -it -v \\wsl$\Ubuntu\data:/data my-docker-image:latest ls /data/my-mount
docker: Error response from daemon: error while creating mount source path
C:\Users\Myself\clearml.conf
中設置 clearml.conf 文件,這樣:default_docker: {
# default docker image to use when running in docker mode
image: "my-docker-image:latest"
# optional arguments to pass to docker image
arguments: ["-v","\\wsl$\Ubuntu\data:/data", ]
}
["-v","/data:/data", ]
。clearml-agent daemon --docker
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.