Docker如何用于多层应用?
How Docker can be used for multi-layered application?
我正在尝试了解如何使用 docker 来 docker 化多层应用程序。
我的 tomcat 应用程序需要 mongodb、mysql、redis、solr 和 rabbitmq。我现在玩 Docker 几个星期了。我能够安装和使用 mongo/mysql 个容器。但我不知道如何使用 Docker 完全发布应用程序。我有几个问题。
图像应该如何。我应该有一个安装了所有组件的图像还是有单独的图像(比如一个用于 tomcat,一个用于 mongo,一个用于 mysql 等)并使用 bash docker 之外的脚本。
一次维护多个容器的docker方法是什么。意思是说我有多个容器(如 mongo、mysql、tomcat 等...)需要与 运行 我的应用程序一起工作,是否有任何内置方式处理这件事以便 command/script 做到这一点?
假设我 docker 管理我的应用程序,我如何管理需要执行的各种例行任务,如增量代码部署、数据库补丁等。目前我们正在使用 vagrant,我们还使用 fabric 和 vagrant对于各种 tasks.Like,在 vagrant up 之后,我们使用 fab 任务来处理所有类型的日常事务,例如代码部署、数据库刷新、添加卷、start/stop 服务等。docker 的方式是什么这样做?
使用 Vagrant,如果 VM 由于高 CPU 等原因崩溃,主机系统不受影响。但我看到 docker 正在消耗大量主机资源。我们可以限制那个容器不超过一个 cpu 核心等吗?
因为我们使用了vagrant,所以上面的大部分问题都是在那个上下文中。当开始使用 docker 时,我认为 docker 是一种可视化技术,可以替代我们庞大的基于 Vagrant 的基础设施。如果我错了请纠正我?
我建议你看看docker-compose:
- 您将能够定义应用程序的架构
- 然后您可以轻松构建它并运行它(使用一个命令)
- dev 和 prod 的设置几乎相同
对于微服务、组合等,我不会转载。
容器资源分配:
Docker 运行 有各种资源控制选项(使用 google cgroups)在这里查看我的要点
我正在尝试了解如何使用 docker 来 docker 化多层应用程序。
我的 tomcat 应用程序需要 mongodb、mysql、redis、solr 和 rabbitmq。我现在玩 Docker 几个星期了。我能够安装和使用 mongo/mysql 个容器。但我不知道如何使用 Docker 完全发布应用程序。我有几个问题。
图像应该如何。我应该有一个安装了所有组件的图像还是有单独的图像(比如一个用于 tomcat,一个用于 mongo,一个用于 mysql 等)并使用 bash docker 之外的脚本。
一次维护多个容器的docker方法是什么。意思是说我有多个容器(如 mongo、mysql、tomcat 等...)需要与 运行 我的应用程序一起工作,是否有任何内置方式处理这件事以便 command/script 做到这一点?
假设我 docker 管理我的应用程序,我如何管理需要执行的各种例行任务,如增量代码部署、数据库补丁等。目前我们正在使用 vagrant,我们还使用 fabric 和 vagrant对于各种 tasks.Like,在 vagrant up 之后,我们使用 fab 任务来处理所有类型的日常事务,例如代码部署、数据库刷新、添加卷、start/stop 服务等。docker 的方式是什么这样做?
使用 Vagrant,如果 VM 由于高 CPU 等原因崩溃,主机系统不受影响。但我看到 docker 正在消耗大量主机资源。我们可以限制那个容器不超过一个 cpu 核心等吗?
因为我们使用了vagrant,所以上面的大部分问题都是在那个上下文中。当开始使用 docker 时,我认为 docker 是一种可视化技术,可以替代我们庞大的基于 Vagrant 的基础设施。如果我错了请纠正我?
我建议你看看docker-compose:
- 您将能够定义应用程序的架构
- 然后您可以轻松构建它并运行它(使用一个命令)
- dev 和 prod 的设置几乎相同
对于微服务、组合等,我不会转载。
容器资源分配:
Docker 运行 有各种资源控制选项(使用 google cgroups)在这里查看我的要点