Docker - 从主机访问容器内的文件

Docker - accessing files inside container from host

我是 docker 的新手。

我 运行 一个 node-10 图像并在 运行 容器中我克隆了一个存储库,运行 应用程序启动了一个带有文件监视器的服务器。我需要访问容器内的代码库,在 windows 主机上的 IDE 运行 中打开它。如果这样做了,那么我也希望在我更改 IDE 中的文件时,这些更改会导致容器中的 filewatcher。

感谢任何帮助。谢谢,

您要查找的概念称为 volumes。您需要启动一个容器并在其中挂载一个主机目录。对于容器,它将是一个普通的文件夹,它会在其中创建文件。对您来说,它也将是一个普通文件夹。任何一方所做的更改都将对另一方可见。

docker run -v /a/local/dir:/a/dir/in/your/container

请注意,尽管您可以 运行 转换为 permission issues,但您需要单独计算。

您好,我认为您应该为源代码使用挂载卷,并从您的 IDE 正常编辑您的代码:

docker run -it -v "$PWD":/app -w /app -u node node:10 yarn dev

这里 docker 将创建一个映像,将工作目录设置为“/app”,将当前目录挂载到“/app”,运行 "yarn dev" 在启动时使用"node" 用户(none 根用户)

希望对您有所帮助。

这取决于您要对文件执行的操作。

可以使用 docker cp 命令将文件 to/from 复制到容器中。

然而,在我看来你正在使用 docker 进行开发,所以你应该挂载一个卷,也就是说,你在主机上挂载一个目录作为 docker 中的一个卷, 因此写入该目录的任何内容都会显示在容器中,反之亦然。

例如,如果您在 windows 机器上拥有针对 C:\src 开发的代码库,那么您 运行 docker 喜欢 docker run -v c:\src:/app其中 /app 是节点正在寻找的位置。但是,对于 Windows 有一些事情需要考虑,因为 Docker 在 Windows 中不是原生的,所以看看首先是 documentation