.net core 如何在分布式系统中使用docker

.net core 如何在分布式系统中使用docker,.net-core,docker-compose,docker-swarm,distributed-database,.net Core,Docker Compose,Docker Swarm,Distributed Database,您好,我有以下问题: 我有.NET Core WebApi和一个分布式数据库(referencedb),我想使用Docker容器来扩展它。 数据库既可以分片也可以复制(不过我对复制不感兴趣)。 我的问题在于设计: 使用我已经创建的docker 1. Dockerfile用于数据库 2. Dockerfile用于webapi 3. Dockercompose用于该对 我的问题是,在这种情况下,如何集成Docker swarm或Kubernetes进行扩展?我不是很熟悉,但是webapi依赖于数据库

您好,我有以下问题:

我有
.NET Core WebApi
和一个
分布式数据库(referencedb),我想使用
Docker
容器来扩展它。 数据库既可以分片也可以复制(不过我对复制不感兴趣)。 我的问题在于设计:

使用我已经创建的docker
1. <代码>Dockerfile
用于数据库
2. <代码>Dockerfile用于webapi
3. <代码>Dockercompose用于该对

我的问题是,在这种情况下,如何集成
Docker swarm
Kubernetes
进行扩展?我不是很熟悉,但是
webapi
依赖于数据库工作。在这种情况下我需要docker compose吗?或者它们是如何组合在一起的?(停靠相关组件+缩放)


您是将所有组件固定在一个容器中然后进行缩放,还是将它们分开并分别进行缩放?

docker compose是一种用于运行多容器docker应用程序的工具,但其用途有限。正如文档所说,它通常用于开发环境、自动化测试环境和单主机部署。(见:)

如果您想在多台主机上部署这样的应用程序,您将需要一个编排系统。Docker swarm或kubernetes非常适合。这两个系统都需要一个docker注册表,您可以在其中输出自己的自定义docker图像。这些图像可以从已有的DockerFile中构建。docker-compose.yaml文件未在这些系统上使用,但您仍然可以将其完美地用于开发

两种解决方案都可以分别缩放每个组件。哪一个更好是有争议的,可能取决于您的架构