繁体   English   中英

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

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM