2016-11-28 36 views
2

無處不在,當我讀到Docker容器,我發現很多的人講,他們失去了他們的數據(保存的容器,而不是容積數據的一部分內),當他們重新啓動容器。爲什麼在重新啓動容器後,我的非卷數據在Docker容器持久性中?

我試圖創建一個簡單的Ubuntu容器是這樣的:docker run -it ubuntu /bin/bash,並創建了容器內的一些文件,然後重新啓動它,但我數據仍然存在。爲什麼實際發生?爲什麼我的數據還在那裏?這是Docker新版本中的新東西,還是我對某些東西有誤解?

+3

也許當人們談論「重新啓動」時,他們實際上是指「重新創建」。 –

+0

好吧,我所擁有的是正常的,那很簡單,謝謝你。你會回答這個問題嗎? –

回答

3

當容器被移除時,而不是停止或重新啓動時,數據會丟失。

基本上,如果你做docker ps,如果容器保持相同的id(十六進制大丑),數據不會丟失。

時不知何故你搬運工集裝箱不是由您管理就變得複雜,但通過某種自動化,管理方法的。像這樣的工具通常在失敗時啓動新的容器。在這種情況下,您應該安裝一個卷以將數據存儲在主機上。

+0

殺死意味着刪除,或? –

+0

實際刪除。殺死幾乎就像停止一個容器。停止試圖優雅地停止該過程。殺死不。但他們都將容器放在那裏,所以當你輸入「docker ps」時你會看到它們。您可以重新啓動它們,您將看到您創建的文件。另一方面刪除將使容器完全消失,連同其內的所有文件。 – HakRo

2

你可能想看看容器生命週期:https://github.com/wsargent/docker-cheat-sheet#lifecycle

docker create創建一個容器,但不啓動它。

docker rename允許容器被重新命名。

docker run創建並在一個操作開始的容器。

docker rm刪除的容器。

docker update更新容器的資源限制。

如果您再次做docker rmdocker run您的狀態將不再存在。

如果您想要一個瞬態容器,docker run --rm將在容器停止後將其移除。

+0

這已經很清楚了,但是我想知道他們何時說:「當我們重啓容器時我們丟失了數據」,顯然就像上面的評論,他們的意思是「重新創建」,而不是重新啓動。 –

相關問題