簡體   English   中英

如何在容器上使用本地文件?

[英]How can I use a local file on container?

我正在嘗試創建一個容器來運行程序。 我正在使用預先配置的映像,現在我需要運行該程序。 但是,它是一個機器學習程序,我需要從我的計算機中獲取一個數據集才能運行。

文件太大,無法復制到容器中。 如果容器中運行的程序在我計算機的本地目錄中搜索數據集,那將是最好的,但我不知道如何做到這一點。

有沒有辦法用一些 docker 命令來做這個參考? 還是使用 Dockerfile?

是的,你可以這樣做。 您所描述的是綁定安裝。 有關該主題的文檔,請參閱https://docs.docker.com/storage/bind-mounts/

例如,如果我想將一個文件夾從我的主目錄掛載到容器中的/mnt/mydata中,我可以這樣做:

docker run -v /Users/andy/mydata:/mnt/mydata myimage

現在,容器內的/mnt/mydata將可以訪問我主機上的/Users/andy/mydata

請記住,如果您使用的是 Mac 版 Docker 或 Windows 版 Docker,則主機上有默認允許的特定目錄:

如果您在 Mac 或 Windows 上使用 Docker Machine,則您的 Docker Engine 守護進程只能有限地訪問您的 macOS 或 Windows 文件系統。 Docker Machine 會嘗試自動共享您的 /Users (macOS) 或 C:\\Users (Windows) 目錄。 因此,您可以使用 macOS 在 macOS 上掛載文件或目錄。

2019 年 7 月更新:

我已將文檔鏈接和命名更新為正確的。 這些類型的掛載稱為“綁定掛載”。 關於 Docker for Mac 或 Windows 的片段不再出現在文檔中,但它仍然適用。 我不確定他們為什么刪除它(我的 Docker for Mac 仍然有一個明確的主機上允許安裝路徑的列表)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM