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

Linux 如何从docker容器中访问本地PC的文件系统,linux,docker,filesystems,Linux,Docker,Filesystems,我想启动以下docker容器并对其具有终端访问权限: docker run -it docker:5000/builds/build-lnx64-centos7:latest /bin/bash 问题是,在终端内部,我在文件系统中找不到任何文件。没有~/Desktop和类似目录 问题:如何从docker容器中访问本地PC的文件系统?默认情况下,容器无法看到其主机的文件系统 如果要实现这一点,您必须使用-v标志显式地“装载”希望看到的任何目录,如下所示: docker run -v ~/Desk

我想启动以下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开发)。在执行后一种操作(热重新加载示例)时,通常明智的做法是以只读模式装载

有关更多详细信息,请参阅文档: