docker - 从主机访问 Docker 镜像中的数据文件
问题描述
我知道在运行映像时安装/使用卷将用主机上的目录覆盖容器中的目录。
我想知道这是否可以反过来做。
我有在my-image
其中创建的数据docker build
。
docker run -dit --volume ~/data:/usr/data my-image
通过上面的命令,主机~/data
目录将在 Docker 容器内映射到该/usr/data
目录。我想要相反的行为,我希望容器/usr/data
目录映射到主机~/data
(基本上覆盖主机目录中的任何内容~/data
)。
这可能吗?
解决方案
这里有一些想法:
链接/装载卷文件夹
将容器内的文件夹转换为卷(例如,将其标记为
VOLUME
内部的Dockerfile
)在主机上,将卷文件夹链接或挂载到所需位置(取决于有效的和您需要的)。这是可能的,因为卷存在于内部
/var/lib/docker/volumes/
——您只需要通过检查容器来找到相关文件夹。
这里的好处是即使容器没有运行,您也可以访问数据。
使用保险丝,例如sshfs
一个更“通用”的解决方案是使用类似sshfs
.
显然,它需要您的容器运行ssh
并建立连接,然后才能访问容器中的数据。
推荐阅读
- python - 在python中导入CV2给出未定义的符号错误
- flutter - 在 Flutter 中跟踪 setState 调用
- azure-active-directory - 首次使用访客用户作为全局管理员登录 azsphere
- tsql - SQL SERVER V 2017 only 函数如何在兼容级别较低的数据库上运行
- swagger - Web API 2 和 Swagger
- tcl - tcl close 不会优雅地终止 tcp/ip 连接
- fortran - 是否可以强制 Fortran 编译器使用单精度?
- c# - 嵌套映射配置(另一个内部的现有配置)
- c# - URL.action 转到服务器,但不是根 URL
- sql - True/False 表中的最后一条记录