我正在尝试创建一个容器来运行程序。我正在使用预先配置的图像,现在我需要运行该程序。但是,这是一个机器学习程序,我需要从我的计算机运行数据集。
该文件太大,无法复制到容器中。如果容器中运行的程序在我的计算机的本地目录中搜索数据集,那将是最好的,但我不知道如何做到这一点。
有没有办法用一些docker命令做这个引用?还是使用Dockerfile?
是的,你可以这样做。您所描述的是主机卷安装。有关该主题的文档,请参阅https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume。
例如,如果我想将一个文件夹从我的主目录挂载到容器中的/mnt/mydata
,我可以这样做:
docker run -v /Users/andy/mydata:/mnt/mydata myimage
现在,容器内的/mnt/mydata
可以在我的主机上访问/Users/andy/mydata
。
请记住,如果您使用的是Docker for Mac或Docker for Windows,则默认情况下主机上有特定的目录:
如果您在Mac或Windows上使用Docker Machine,则Docker Engine守护程序只能有限地访问您的macOS或Windows文件系统。 Docker Machine尝试自动共享您的/ Users(macOS)或C:\ Users(Windows)目录。因此,您可以使用在macOS上挂载文件或目录。