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

时间:2017-07-03 01:54:27

标签: docker dockerfile boot2docker docker-machine

我正在尝试创建一个容器来运行程序。我使用预先配置的图像,现在我需要运行该程序。但是,它是一个机器学习程序,我需要从我的计算机运行数据集。

文件太大,无法复制到容器中。如果容器中运行的程序在我的计算机的本地目录中搜索数据集,那将是最好的,但我不知道如何做到这一点。

有没有办法用一些docker命令做这个引用?或者使用Dockerfile?

1 个答案:

答案 0 :(得分:34)

是的,你可以这样做。您所描述的是主机卷安装。有关该主题的文档,请参阅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上挂载文件或目录