首页 > 解决方案 > 从主机访问 Docker 镜像中的数据文件

问题描述

我知道在运行映像时安装/使用卷将用主机上的目录覆盖容器中的目录。

我想知道这是否可以反过来做。

我有在my-image其中创建的数据docker build

docker run -dit --volume ~/data:/usr/data my-image

通过上面的命令,主机~/data目录将在 Docker 容器内映射到该/usr/data目录。我想要相反的行为,我希望容器/usr/data目录映射到主机~/data(基本上覆盖主机目录中的任何内容~/data)。

这可能吗?

标签: docker

解决方案


这里有一些想法:

链接/装载卷文件夹

  1. 将容器内的文件夹转换为卷(例如,将其标记为VOLUME内部的Dockerfile

  2. 在主机上,将卷文件夹链接或挂载到所需位置(取决于有效的和您需要的)。这是可能的,因为卷存在于内部/var/lib/docker/volumes/ ——您只需要通过检查容器来找到相关文件夹。

这里的好处是即使容器没有运行,您也可以访问数据。

使用保险丝,例如sshfs

一个更“通用”的解决方案是使用类似sshfs.

显然,它需要您的容器运行ssh并建立连接,然后才能访问容器中的数据。


推荐阅读