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

gom*_*esh 33 docker boot2docker dockerfile docker-machine

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

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

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

And*_*inn 52

是的,你可以这样做.您所描述的是主机卷安装.有关该主题的文档,请参阅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
Run Code Online (Sandbox Code Playgroud)

现在,/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上挂载文件或目录.

  • 我认为除非将映像名称放在命令之前,否则您将得到一个错误:docker myimage run -v / Users / andy / mydata:/ mnt / mydata` (2认同)
  • @MonicaHeddneck 来自 `docker run --help` :`用法:docker run [选项] IMAGE [命令] [ARG...]` (2认同)