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