2017-03-24 59 views
1

我正在學習Docker。在閱讀Docker書籍時,它說「不推薦在Docker上運行有狀態的應用程序(即數據庫引擎)」。我還從我的一位朋友那裏聽說他在Docker上使用MySQL並沒有問題。Docker上的狀態應用程序

在Docker上運行有狀態的應用程序是不是很好的做法? Docker最適合的場景是什麼?

回答

2

狀態碼頭應用程序的問題在於,它們默認將其狀態(數據)存儲在容器文件系統中。一旦你更新你的軟件版本,或者想要移動到另一臺機器,很難從那裏檢索數據。

您需要做的是將卷綁定到容器並將任何數據存儲在卷中。這個卷可能在運行容器的主機上或其他地方。 picture解釋了不同的設置。

如果使用以下命令運行容器:docker run -v hostFolder:/ containerfolder/containerfolder的任何更改都將保留在主文件夾中。類似的東西可以用nfs驅動器來完成。然後,您可以在任何主機上運行應用程序,並且狀態將保存在nfs驅動器中。