2015-04-07 231 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。圖像停止時,它可以更改並重置。

鏈接

相關問題