【问题标题】:Good strategy for storing data using Docker?使用 Docker 存储数据的好策略?
【发布时间】:2016-01-08 11:13:11
【问题描述】:

对于我的应用程序,我正在考虑使用 Docker 容器,我想在容器中运行一些复杂的 CRM 系统,例如 SugarCRM,我的问题是关于 VOLUMES 和数据存储的策略应该是什么?

我正在考虑使用 IBM Bluemix Containers,我想知道我应该如何将数据存储在外部服务中?容器内?你认为最好的策略是什么?也许我不了解容器的概念,它们应该仅用作托管应用程序的临时环境吗?

【问题讨论】:

    标签: docker storage containers ibm-cloud sugarcrm


    【解决方案1】:

    您的问题非常广泛,可以说没有什么是“最佳策略”。我尽我所能引导您走向正确的方向,希望对您有所帮助。

    您的问题包含一些关于存储的元素,我尝试一一简要地跳到它们。

    1. 考虑客户数据:(我指的是应该安全正确存储的数据)

      • 关于数据库存储,既然您已决定使用 BlueMix,请尽可能尝试使用外部数据存储。从 RDBMS 到 NoSql 的各种云存储都以非常优惠的价格提供。

      • 如果您想使用自己的数据库和数据存储,您可以使用挂载到 docker 容器中的主机文件系统,并确保它们已正确设置和备份。您可以通过在 Docker 中使用 -v 简单地挂载您的卷来实现此目的。

      • 如果您愿意,还可以使用称为“数据容器”的东西。 Docker 可以在 docker 容器内提供数据卷,它们独立于容器生命周期,永远不会被垃圾收集。那么它的工作原理是,您使用-v 创建一个带有卷但没有主机路径的虚拟容器。然后你启动另一个容器并使用--volumes-from。更多信息:https://docs.docker.com/engine/userguide/dockervolumes/

      • 您可以使用一些外部卷插件在您的队列中轻松移动数据卷,并确保它们在需要时可供 docker 容器使用。我的设置有点复杂,但非常有趣和有趣 ;-) 喜欢 Flocker:https://clusterhq.com/docker-plugin/ 或 GlusterFS:https://github.com/calavera/docker-volume-glusterfs 等等:https://github.com/docker/docker/blob/master/docs/extend/plugins.md

      • 您还可以将数据存储到云数据存储中,例如 Elastic 支持 Amazon S3 用于存储快照,因此您可以依赖它,对我来说这听起来不是万无一失的,但无论如何它是一种选择 :-)

    2. 下一个类别是从您的容器生成的数据,但实际上并不是客户数据,例如日志信息。对于那些也有几个选择:

      • 您可以再次从主机挂载卷并将数据存储在主机中,例如使用 logstash 备份并发送到某处。

      • 您可以使用各种日志插件和容器直接从 docker daemon 收集数据,例如:loggly 或 logentries 等等。

      • 您可以将 syslog /dev/syslog 套接字直接挂载到您应用的容器中,并将数据发送到您的主机 syslog,然后使用各种可用机制收集它们。

      • 如果您使用的是 systemd,那么 journald 已经获得了所有 docker 日志,因此如果应用程序日志进入 stdoutstderr,您可以使用 journalctl 收集并做任何您想做的事情想要。

    这些只是冰山一角。如果您需要更多信息,请告诉我,也许我可以提供帮助。

    【讨论】:

    • 我正在使用 Elk 集群来整理 syslog。效果很好。
    猜你喜欢
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多