【发布时间】:2017-08-16 13:08:26
【问题描述】:
Docker 的documentation 声明卷可以“迁移”——我假设这意味着我应该能够将卷从一台主机移动到另一台主机。 (很高兴在这一点上得到纠正。)但是,同一文档页面没有提供有关如何执行此操作的信息。
在 SO 上四处寻找,我发现了一个 older 问题(大约 2015 年左右),指出这是不可能的,但鉴于已经过去了 2 年,我想我会再问一次。
如果有帮助,我正在开发一个使用 [TinyDB] + 本地磁盘作为数据存储的 Flask 应用程序——我已经确定我不需要比这更花哨的东西了;这是目前为学习而完成的项目,所以我决定非常轻量级。该项目的结构如下:
/project_directory
|- /app
|- __init__.py
|- ...
|- run.py # assumes `data/databases/ and data/files/` are present
|- Dockerfile
|- data/
|- databases/
|- db1.json
|- db2.json
|- files/
|- file1.pdf
|- file2.pdf
我的.dockerignore 和.gitignore 中有文件夹data/*,因此它们不会置于版本控制之下,并且在构建映像时会被Docker 忽略。
在开发应用程序时,我还尝试使用尽可能接近真实世界的数据库条目和 PDF,因此我使用存储在卷上的非常小的真实数据子集为应用程序植入在实例化 Docker 容器时直接挂载到 data/ 中。
我想要做的是在远程主机上部署容器,但让远程主机播种启动数据(理想情况下,这将是我一直在本地使用的卷,以最大限度地方便);稍后随着在远程主机上添加更多数据,我希望能够将其拉回,以便在开发过程中使用最终用户输入的最新数据。
环顾四周,我正在考虑的“hacky”方式只是使用rsync,这可能会很好。但是,如果我缺少解决方案,我将不胜感激!
【问题讨论】:
标签: docker flask docker-volume