我在ubuntu服务器上安装了docker as 14.04.02。并且有一个svn的容器-server。
我连接到svn-docker-container,然后从源svn-server同步。(使用svn-sync)
在这种情况下,我担心如果主机pc不是资产关闭,可能会有数据丢失。是否会发生数据丢失?(更新了svn存储库。但主机pc已关机。发生了什么?)
如果发生这种情况,防止数据丢失的最佳方法是什么?(例如,使用-v选项连接主机目录和容器目录)
发布于 2015-04-07 19:50:05
根据我对您问题的理解,您有一个svn-server-container和一个svn-container,并且您担心当svn-server-container异常关闭时会发生什么。因此,我建议您至少为服务器使用卷,这样即使服务器容器关闭,服务器数据也会存储在您的主机上。
此外,您可能希望为svn-container使用卷,因此不必每次重新启动svn-container时都从服务器中提取整个svn-directory。
当然,如果相应的进程异常终止,可能会发生数据损坏的情况,因为可能仍有一些写操作正在进行,然后被中断。但假设所有写操作都已完成,并且SVN本身并不介意被关闭,那么这可能会很好地工作。
发布于 2016-04-07 05:37:14
因为我已经对这个问题的‘否决票’发表了一些评论;我认为(尽管我只是在看完"Minnions“之后才开始使用Docker-ezze ),它同样是不透明的。更有趣,更不透明。
好吧,一个愚蠢的理解;Docker容器是Docker规范的一个运行时实例。在Docker存储库中有(或者可能是)该规范的二进制镜像--如果您已经“保存了一个”的话。
我们的Docker容器就像是特定系统、特定配置和特定数据(内容)的启动或自动执行脚本。这对于重复运行静态的东西非常有用,比如小型网站、评估服务器或软件包、可重复测试等(例如)。
对我来说,第一个用例(我可能)向人们展示的是一个“测试数据库”。每次你说
docker run test-database-server具有指向正在运行Docker映像的连接字符串的/ Any应用程序是一个数据库服务器,其中包含我的应用程序的已知测试数据。我可以更新容器中的数据--一旦测试数据库服务器终止,这些更新将不会持久。这就像数据库重置一样。非常适合测试东西。
如果我想让我的测试数据库服务器指向不同的数据内容-- Ergo,我可能有两到三个不同的测试数据集--我可以把数据放在一个不同的Docker容器中,我可以从我的test-database-server中使用它
docker run test-database-server -volumes-from=test-data-container我的test-data-container甚至可以通过-volume=...选项指向或使用系统上的“真实”磁盘。因此,可以将test-data-container的日期设置为容器外部的实际数据库。据我所知,容器中的任何东西都不能持久,它就像预初始化的RAM。它可以更改,并在图像停止时重置。
链接
man docker-run man docker
https://stackoverflow.com/questions/29486054
复制相似问题