我正在尝试创建一个容器来运行程序。我正在使用预配置映像,现在我需要运行程序。但是,这是一个机器学习程序,我需要计算机上的数据集才能运行。
该文件太大,无法复制到容器中。最好是在容器中运行的程序搜索了我计算机本地目录中的数据集,但我不知道该怎么做。
有什么办法可以通过某些docker命令来执行此参考吗?还是使用Dockerfile?
是的,您可以这样做。您所描述的是绑定安装。有关此主题的文档,请参见https://docs.docker.com/storage/bind- mounts/。
例如,如果要将文件夹从主目录装入到/mnt/mydata容器中,可以执行以下操作:
/mnt/mydata
docker run -v /Users/andy/mydata:/mnt/mydata myimage
现在,/mnt/mydata在容器内部将可以访问/Users/andy/mydata我的主机。
/Users/andy/mydata
请记住,如果您使用的是Mac的Docker或Windows的Docker,则默认情况下主机上会存在特定目录:
如果在Mac或Windows上使用Docker Machine,则Docker Engine守护程序仅具有对macOS或Windows文件系统的有限访问权限。Docker Machine尝试自动共享您的/ Users(macOS)或C:\ Users(Windows)目录。因此,您可以使用在macOS上挂载文件或目录。
2019年7月更新:
我已经更新了文档链接并命名正确。这些类型的安装架称为“绑定安装架”。有关适用于Mac或Windows的Docker的代码片段不再出现在文档中,但仍应适用。我不确定为什么他们将其删除(我的Mac版Docker仍然在主机上具有允许的安装路径的明确列表)。