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

时间:2018-10-17 13:41:16

标签: node.js docker docker-container

我是Docker的新手。

我运行了一个10节点的图像,并在运行的容器中克隆了一个存储库,运行了使用文件监视程序启动服务器的应用程序。我需要访问容器内的代码库,并在Windows主机上运行的IDE中打开它。如果完成了,那么我还希望在IDE中更改文件时,这些更改会导致容器中出现文件监视程序。

感谢您的帮助。谢谢,

3 个答案:

答案 0 :(得分:2)

您要寻找的概念称为volumes。您需要启动一个容器并在其中安装主机目录。对于容器,它将是一个常规文件夹,并且将在其中创建文件。对您来说,它也是一个常规文件夹。双方所做的更改将对另一方可见。

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

请注意,尽管您可能会遇到permission issues,但需要另外弄清楚。

答案 1 :(得分:1)

嗨,我认为您应该使用装载卷作为源代码,并通常从IDE中编辑代码:

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

在这里docker将创建一个映像,将工作目录设置为“ / app”,将当前目录安装到“ / app”,并在启动时以“节点”用户(无root用户)运行“ yarn dev”

希望这会有所帮助。

答案 2 :(得分:1)

这取决于您要处理的文件。

docker cp命令,可用于将文件复制到容器或从容器复制文件。

但是,在我看来,您正在使用docker进行开发,因此您应该挂载一个卷,也就是说,您将主机上的目录作为一个卷安装在docker中,这样写到该目录的所有内容都会显示出来。在容器中,反之亦然。

例如,如果您拥有在Windows计算机上的C:\src中针对其开发的代码库,则可以像docker run -v c:\src:/app一样运行docker,其中/app是节点正在寻找的位置但是,对于Windows,由于Docker不是Windows的本机,因此需要考虑一些事项,因此请首先查看documentation