繁体   English   中英

如何从 docker 容器内访问我本地 PC 的文件系统

[英]how to access the file system of my local PC from within the docker container

我想启动以下 docker 容器并通过终端访问它:

docker run -it docker:5000/builds/build-lnx64-centos7:latest /bin/bash

问题是在终端内我找不到文件系统中的任何文件。 没有~/Desktop和类似的目录。

问题:如何从 docker 容器内访问我本地 PC 的文件系统?

默认情况下,容器无法看到其主机的文件系统。

如果要实现此目的,则必须使用-v标志显式“挂载”要查看的任何目录,如下所示:

docker run -v ~/Desktop:/host-desktop -it docker:5000/builds/build-lnx64-centos7:latest /bin/bash

如果您运行该命令,您将在容器的文件系统/host-desktop看到桌面的内容。

您真的不希望您的容器能够看到整个主机文件系统。 这将是危险的,尤其是如果容器具有写权限。 您应该始终只“挂载”您希望容器访问的确切文件/目录。

在大多数情况下,我使用过的任何使用 docker 的项目都会进行“卷挂载”,以便容器可以写入文件,开发人员可以轻松地在主机上访问它们(例如 selenium 测试截图),或者开发人员可以编辑源代码代码和容器将看到更新和热重载(例如 nodejs 开发)。 在执行后者(热重载示例)时,以只读模式安装通常是明智的。

有关更多详细信息,请参阅文档: https : //docs.docker.com/engine/reference/commandline/run/#mount-volume--v---只读

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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