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

12

我是新手使用Docker。

我运行了一个node-10镜像,并在运行的容器中克隆了一个存储库,运行了启动带有文件观察器的服务器的应用程序。我需要访问容器内的代码库,在运行在Windows主机上的IDE中打开它。如果完成了这个步骤,我还希望当我在IDE中更改文件时,这些更改会引发容器中的文件观察器。

任何帮助都将不胜感激。谢谢,

3个回答

17

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

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

请注意,你可能会遇到权限问题,需要单独解决。


4

视你想要对文件进行何种操作而定。

有一个docker cp命令,可以用来复制文件到/从容器。但是,听起来你在使用 Docker 进行开发,所以应该挂载卷,即将主机上的目录作为 Docker 中的卷挂载,这样写入该目录的任何内容都会显示在容器中,反之亦然。

例如,如果你在 Windows 上的 C:\src 目录中开发代码,则可以运行如下的 docker 命令:docker run -v c:\src:/app,其中 /app 是 Node 查找的位置。但是,对于 Windows 平台,需要考虑一些事项,因为 Docker 不是 Windows 的本机应用程序,请首先查看文档


2

你好,我认为你应该使用挂载卷来存储源代码,并且可以在你的IDE中正常编辑代码:

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

在这里,Docker 将创建一个镜像,将工作目录设置为“/app”,将当前目录挂载到“/app”,并在启动时使用“node”用户(非 root 用户)运行“yarn dev”。
希望这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接