Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 在docker中存储数据的最佳方式是什么?_Svn_Docker_Volume - Fatal编程技术网

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

Svn 在docker中存储数据的最佳方式是什么?,svn,docker,volume,Svn,Docker,Volume,我在ubuntu服务器上安装了docker,版本为14.04.02。还有一个用于svn服务器的容器 我连接到svn docker容器,然后从原始svn服务器同步。 (通过使用svn同步) 在这种情况下,我担心如果主机pc未关闭,可能会出现数据丢失。是否会发生数据丢失? (已更新svn存储库。但主机pc已关闭。会发生什么情况?) 如果发生这种情况,防止数据丢失的最佳方法是什么? (例如,使用-v选项在主机目录和容器目录之间连接)据我所知,任何应该持久化的数据存储都应该使用卷来实现。如果您将所有应该

我在ubuntu服务器上安装了docker,版本为14.04.02。还有一个用于svn服务器的容器

我连接到svn docker容器,然后从原始svn服务器同步。 (通过使用svn同步)

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

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

据我所知,任何应该持久化的数据存储都应该使用卷来实现。如果您将所有应该存储到卷中的数据写入,那么这些数据将存储在主机文件系统中

按照我对您问题的理解,您有一个svn服务器容器和一个svn容器,您担心svn服务器容器异常关闭时会发生什么。 因此,我建议您至少为服务器使用卷,这样即使服务器容器关闭,服务器数据也会存储在主机上。即使使用docker stop关闭服务器容器,如果不使用卷,数据也不会被存储

另外,您可能希望为svn容器使用一个卷,这样您就不必每次重新启动svn容器时都从服务器中提取整个svn目录


当然,如果相应的进程异常终止,可能会导致数据损坏,因为可能仍有一些写入操作正在进行,然后会被中断。但是假设所有的写操作都完成了,并且SVN本身并不介意关闭,那么这可能会很好;我认为(虽然我只是在看了《米尼翁》之后接Docker ezze),它同样不透明。更有趣,不透明

好吧,我明白了,Docker容器是Docker规范的运行时实例。Docker存储库中有(或可能有)该规范的二进制映像—如果您“保存了一个”

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

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

任何连接字符串指向正在运行的Docker映像的应用程序都是一个数据库服务器,其中充满了我的应用程序的已知测试数据。我可以更新容器中的数据——一旦测试数据库服务器终止,这些更新将不会持续。这就像数据库重置一样。非常适合测试

如果我希望我的测试数据库服务器指向不同的数据内容——因此,我可能有两个或三个不同的测试数据集——我可以将数据放在不同的Docker容器中,我可以这样做 从my
测试数据库服务器使用

   docker run test-database-server -volumes-from=test-data-container
而且我的
测试数据容器
甚至可以通过
-volume=…
选项指向或使用我系统上的“真实”磁盘。因此可以将
测试数据容器
的日期设置为在容器外部作为一个实际数据库。据我所知,“内部”没有任何内容容器可以持久存在,就像预先初始化的RAM。它可以更改,并在映像停止时重置

链接:

  • =
    mandocker
    • man-docker-run
可能与我参加培训师培训班时的情况相同;当时的一个关键公理是——没有不好的问题。柏拉图和亚里士多德可能在年的下一轮投票中在明显的集装箱化坟墓中旋转。学习模式回到了希腊人不需要驱逐难民的时代我认为学习是学生/学习者所做的事情。对我来说,这里的投票是一个非常可疑的行动。1980年代末期,我们在Burrand的大中型系统上安装了容器,事情很奇怪,所以对我来说,这个问题是正确的101%。
   docker run test-database-server -volumes-from=test-data-container