Docker上的状态应用程序

Sav*_*ros 4 docker

我正在学习Docker。读一本Docker书,上面写着“不建议在Docker上运行有状态的应用程序(即数据库引擎)”。我还从我的一个朋友那里听说他在Docker上使用MySQL没问题。

在Docker上运行有状态应用程序是一种好习惯吗?Docker最适合的情况是什么?

her*_*erm 6

Statefull Docker应用程序的问题在于,它们默认情况下将其状态(数据)存储在容器文件系统中。一旦您更新了软件版本或想要移至另一台计算机,将很难从那里检索数据。

您需要做的是将卷绑定到容器并将任何数据存储在该卷中。该卷可能在运行容器的主机上或其他位置。此说明了不同的设置。

如果您使用以下命令运行容器:docker run -v hostFolder:/ containerfolder对/ containerfolder的任何更改都将保留在hostfolder上。使用nfs驱动器可以完成类似的操作。然后,您可以在任何主机上运行应用程序,并且状态将保存在nfs驱动器中。