首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在docker中存储数据的最佳方式是什么?

在docker中存储数据的最佳方式是什么?
EN

Stack Overflow用户
提问于 2015-04-07 15:23:14
回答 2查看 2.3K关注 0票数 1

我在ubuntu服务器上安装了docker as 14.04.02。并且有一个svn的容器-server。

我连接到svn-docker-container,然后从源svn-server同步。(使用svn-sync)

在这种情况下,我担心如果主机pc不是资产关闭,可能会有数据丢失。是否会发生数据丢失?(更新了svn存储库。但主机pc已关机。发生了什么?)

如果发生这种情况,防止数据丢失的最佳方法是什么?(例如,使用-v选项连接主机目录和容器目录)

EN

回答 2

Stack Overflow用户

发布于 2015-04-07 19:50:05

根据我对您问题的理解,您有一个svn-server-container和一个svn-container,并且您担心当svn-server-container异常关闭时会发生什么。因此,我建议您至少为服务器使用卷,这样即使服务器容器关闭,服务器数据也会存储在您的主机上。

此外,您可能希望为svn-container使用卷,因此不必每次重新启动svn-container时都从服务器中提取整个svn-directory。

当然,如果相应的进程异常终止,可能会发生数据损坏的情况,因为可能仍有一些写操作正在进行,然后被中断。但假设所有写操作都已完成,并且SVN本身并不介意被关闭,那么这可能会很好地工作。

票数 0
EN

Stack Overflow用户

发布于 2016-04-07 05:37:14

因为我已经对这个问题的‘否决票’发表了一些评论;我认为(尽管我只是在看完"Minnions“之后才开始使用Docker-ezze ),它同样是不透明的。更有趣,更不透明。

好吧,一个愚蠢的理解;Docker容器是Docker规范的一个运行时实例。在Docker存储库中有(或者可能是)该规范的二进制镜像--如果您已经“保存了一个”的话。

我们的Docker容器就像是特定系统、特定配置和特定数据(内容)的启动或自动执行脚本。这对于重复运行静态的东西非常有用,比如小型网站、评估服务器或软件包、可重复测试等(例如)。

对我来说,第一个用例(我可能)向人们展示的是一个“测试数据库”。每次你说

代码语言:javascript
复制
 docker run test-database-server

具有指向正在运行Docker映像的连接字符串的/ Any应用程序是一个数据库服务器,其中包含我的应用程序的已知测试数据。我可以更新容器中的数据--一旦测试数据库服务器终止,这些更新将不会持久。这就像数据库重置一样。非常适合测试东西。

如果我想让我的测试数据库服务器指向不同的数据内容-- Ergo,我可能有两到三个不同的测试数据集--我可以把数据放在一个不同的Docker容器中,我可以从我的test-database-server中使用它

代码语言:javascript
复制
   docker run test-database-server -volumes-from=test-data-container

我的test-data-container甚至可以通过-volume=...选项指向或使用系统上的“真实”磁盘。因此,可以将test-data-container的日期设置为容器外部的实际数据库。据我所知,容器中的任何东西都不能持久,它就像预初始化的RAM。它可以更改,并在图像停止时重置。

链接

  • Persistient volumes with Docker - Data-only Container Pattern
  • Data-only container madness =
    • man docker-run

man docker

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29486054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档