生产环境中的 DOCKER 环境

Posted

技术标签:

【中文标题】生产环境中的 DOCKER 环境【英文标题】:DOCKER environment in production 【发布时间】:2019-10-14 09:53:37 【问题描述】:

我是 docker 新手,刚开始玩它。截至目前,我在生产中的应用程序设置如下:

服务器机器 1:运行 spring-boot 微服务

服务器机器2:运行redis

服务器机器 3:运行 postgres

如果我在服务器机器 1 中使用 docker 并将所有微服务作为容器运行,并在服务器机器 1 中将 redis 和 postgres 作为容器运行,这是正确的做法吗?或者我必须在所有服务器机器上运行 docker 并单独运行容器。

最佳做法是什么?

【问题讨论】:

如果您将 Docker Container 视为另一个操作系统,您可以清楚地看到,您可以做到——将所有内容保存在一个服务器中,或者将它们分成单独的服务器。我个人将它们全部保存在一个服务器中,然后仅在需要扩展服务时才生成另一台服务器。这也省钱。 在哪种情况下我可以添加新服务器?以及我将如何在两台服务器中连接 docker? 为此,大多数人使用 Kubernetes 或 Docker swarm。这些程序将您的 docker 容器部署在多台机器上,而您无需过多地连接它们。 【参考方案1】:

刚开始时,我建议在一台机器上完成所有操作。您的数据库容器可以使用卷将数据保存到机器本身。所以当你需要切换到另一台机器时,因为1台机器速度太慢,你可以轻松地转移你的数据库数据。当开始使用超过 1 台机器来运行 Docker 时,您可能希望使用 Kubernetes 或 Docker swarm 之类的部署选项。这将简化在不同机器上设置环境的过程,因为它将由 Kubernetes 完成。

此外,当您的应用程序获得大量流量时,您可能希望切换到由 GCP、AWS、Digitalocean 等服务提供的托管数据库。托管数据库将自动扩展、频繁获取更新和备份自动地。这会给你的肩膀带来很大的负担。我个人自己使用托管数据库。

我现在的建议:使用 1 台机器,当您的应用程序获得更多流量时学习 Kubernetes。查看托管数据库(可用于 Redis 和 Postgres)。

【讨论】:

以上是关于生产环境中的 DOCKER 环境的主要内容,如果未能解决你的问题,请参考以下文章

Docker在生产环境中的应用--开篇

生产环境,测试环境中,Docker 可以做啥

生产环境docker部署项目之后没有logback日志

docker mesos在生产环境的实践

Docker---docker生产环境之TLS通讯加密

在生产环境使用Docker部署应用