Docker挂载一个卷并从容器中填充它

时间:2020-06-02 22:19:32

标签: docker

我想将Windows主机上的卷挂载到linux容器中,并使linux容器中目标文件夹的内容填充Windows主机中的文件夹。

示例: -主机文件夹:c:\ Users \ abc \ myfolder -容器文件夹:/ data / mydata 该容器是根据在/ data / mydata内部创建数据的图像构建的

如果我执行docker run -v c:\ Users \ abc \ myfolder:/ data / mydata映像,则c:\ Users \ abc \ myfolder内容将覆盖容器中/ data / mydata上的内容。我想实现相反的效果(将/ data / mydata的内容从c:\ Users \ abc \ myfolder中的容器中获取)

创建一个共享文件夹,然后在容器内登录并将/ data / mydata的内容复制到共享文件夹,会将/ data / mydata的内容暴露给Windows主机,但是它涉及到手动复制,并且不是很容易

谢谢。

1 个答案:

答案 0 :(得分:0)

具有控制读写权限的功能

您可以通过将:ro附加到-v开关来指定卷是只读的:

docker run -v /path/in/host:/path/in/container:ro my_image_name

但是只能在容器文件夹中使用,并且默认情况下(可能进行修改)是在主机上读写

同步

也许您可以:

  • 创建一个名为/ folders / left的文件夹(在您的情况下为c:\ Users \ abc \ myfolder)
  • 创建一个名为/ folders / right的文件夹
  • 创建一个容器以填充/ folders / right
docker run -v /folders/right:/path/in/container my_image_name
  • 确保在容器启动前 / folders / right 为空,以便不覆盖内部容器文件夹
  • 与此相关,您将拥有/ folders / left(主机文件夹)和/ folders / right(由容器进行的更改)
  • 最终尝试使用某些工具从左向右同步或其他配置