Docker在运行容器时将文件挂载到本地系统



我使用的是一个简单的节点图像academind/node-example-1。你可以在这里查看https://hub.docker.com/r/academind/node-example-1。当我运行图像时我想要得到相同的文件夹&在图像中存在的文件结构。我知道这可以通过体积来实现。当我使用

docker run -d --rm --name node-test -p 5000:80 academind/node-example-1

一切都是正确的,但是我想在运行时得到代码库,所以我尝试像

docker run -d --rm --name node-test -p 5000:80 -v /Users/souravbanerjee/Documents/node-docker:node-example-1 academind/node-example-1 

这里的node-docker是我期望代码所在的本地文件夹。它运行但没有在本地机器中获取文件,我在这里怀疑source_path:destination_path。请纠正我,请告诉我哪里错了,或者该怎么做,或者我的整个思维是否朝着错误的方向发展。

谢谢。

如果您阅读了官方文档,您将看到:的第一部分应该是主机中某处的路径(您正在做的),而后一部分应该匹配路径"容器(而不是使用映像名称)。假设/app是路径(我自己选择了这门课程,这是路径事务),它应该是:

docker run -d --rm --name node-test -p 5000:80 -v /Users/souravbanerjee/Documents/node-docker:/app academind/node-example-1

我认为正确的语法是在卷映射中输入驱动器信息。

。用户/xxxx/:/传动/位置

但是,这将映射您的空驱动器xxxx在'location'文件夹的顶部。从而删除容器中的现有文件。

如果您对容器中的文件内容感兴趣,您应该考虑使用'Docker CP'命令。

人们经常使用卷挂载将数据(即持久化数据库文件)推送到容器中。

或者,将日志文件写入应用程序容器内的卷挂载位置。然后这些文件会反映到本地驱动器

您可以使用命令

将文件复制到当前主机目录
docker cp node-test:/app .

容器运行

最新更新