2015-04-07 164 views
0

我在14.04.02在ubuntu服务器上安装了docker。并且有一个用于svn-server的容器。在Docker中存储数据的最佳方式是什么?

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

在这种情况下,我担心可能会有数据丢失,如果主机PC不属性关闭。数据丢失会发生吗? (更新了一个svn仓库,但主机电脑已关闭,会发生什么情况?)

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

+0

possib le复制[如何处理持久性存储(例如数据库)在docker](http://stackoverflow.com/questions/18496940/how-to-deal-with-persistent-storage-eg-databases-in-docker) – booyaa

+0

当时我承担了_train trainer_ training class ;其中一个关键公理是 - 没有_poor_问题。柏拉图和亚里士多德可能在随后的投票中表现出明显的集装箱化坟墓。在希腊人不需要逃避难民的时代,这种学习模式使经济保持平稳;将学习视为学生/学习者所做的事情。对我来说,这里的倒票是非常可疑的行动。 20世纪80年代后期,我们在Burroughs大型和中型系统上安装了集装箱,事情很简单。对我来说,这个问题是101%正确的。 – will

回答

0

根据我的理解,应该使用卷来实现应该保留的任何数据存储。如果您将所有应该存储到卷中的数据写入,则该数据将存储在主机文件系统中。

我明白你的问题的方式,你有一个svn-server-container和一个svn-container,你担心svn-server-container异常关闭时会发生什么。 因此,我建议您至少使用服务器的卷,以便服务器数据存储在主机上,即使服务器容器已关闭。即使您只是使用docker stop关闭了服务器容器,如果不使用卷,数据也不会被存储。

此外,您可能希望为svn-container使用一个卷,因此每次重新启动svn-container时,并不总是必须从服务器上拉出整个svn目录。

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

0

正如我对这个问题的“倒票”发表了一些评论, 。我认为(尽管我只是拾取多克尔 - ezze看“Minnions”它只是作为不透明后更多乐趣,不透明

OK了哑我的理解;码头工人容器是,一个泊坞窗规范运行时实例有(或可能成为)在泊坞存储库规范的二进制映像 - 如果你有“保存一个

我们的码头工人容器就像启动autoexec特定系统和特定配置以及特定数据(内容)的脚本。对于重复运行诸如小型网站等静态事物,评估服务器或软件包,重复测试运行等(例如),这是非常棒的。

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

docker run test-database-server 

的/有一个连接字符串指向该运行多克尔图像的任何应用程序是数据库服务器的完全专有的测试数据为我的应用程序。我可以更新容器中的数据 - 一旦测试数据库服务器终止,这些更新将不会持续。它就像数据库重置。完美的测试东西。

如果我想我的测试数据库服务器来点不同的数据内容 - 人机工程学,我可能有两个或三个不同的测试数据集 - 我可以把数据在不同的码头工人的容器,我可以 从我test-database-server

docker run test-database-server -volumes-from=test-data-container 

使用和我test-data-container甚至可以指向或通过-volume=...选择使用我的系统上“真正的”磁盘。因此,test-data-container的日期可以设置为持久性的,作为实际数据库外部的容器。据我了解,“里面”一个容器可以坚持,它就像预初始化的RAM。图像停止时,它可以更改并重置。

链接

相关问题