docker - 所有 docker swarm 实例都可以在同一台机器上运行吗?

标签 docker docker-swarm asp.net-core-webapi

我有几个 Docker swarm 问题(很抱歉没有将它们分开,但它们都是密切相关的):

  • swarm 中的所有实例都必须在不同的机器上运行,还是它们都可以在同一台机器上运行? (如果硬件数量有限,只想尝试 swarm 模式)
  • 我是否必须运行集群模式才能在实例之间进行通信?
  • swarm 模式和仅正常运行多个容器之间的主要区别是什么?
  • 容器实例之间的通信选项有哪些? (在 swarm 和常规模式下)http?命名管道?其他?
  • 如果在同一台机器上的容器之间使用 http 通信,它会与命名管道大致相同吗?
  • Docker 中是否有对消息总线或类似的内置支持?
  • Docker 中是否支持任何共识协议(protocol)?
  • 是否有任何用于设计、管理、测试和/或调试 Docker 群的 GUI?
  • 容器可以列出其他容器,停止/重新启动一些容器并启动新容器吗? (能够作为其他容器的管理器)
  • 是否可以授予容器访问操作系统功能(在我的情况下为 Linux)以配置例如反向代理或 WAN 上的端口转发的权限?

  • 背景:我想弄清楚我应该如何使用 Docker 构建微服务网格。容器将运行 .NET Core。我不太热衷于过度依赖 Docker,因为它在几年内可能不会成为首选技术。我可以/应该用 Docker 做什么,我可以/应该在容器内做什么。这就是我想要弄清楚的。

    最佳答案

    我已经复制了你的问题并试图回答它们。

  • swarm 中的所有实例都必须在不同的机器上运行,还是它们都可以在同一台机器上运行? (如果硬件数量有限,只想尝试 swarm 模式)
  • 您可以在一个集群中只有一台机器并运行同一服务的多个任务,或者换句话说,您的服务规模可以超过实际机器的数量。我有一个带有单台机器和一个带有三台机器的测试群,它的工作方式相同。
  • 我是否必须运行集群模式才能在实例之间进行通信?
  • 您必须以 swarm 模式运行 docker 才能创建服务,请参阅 this link
  • swarm 模式和仅正常运行多个容器之间的主要区别是什么?
  • afaik 的关键区别在于,当一个任务失败时,docker 会自动启动另一个任务。您可以轻松扩展服务,这意味着您只需扩展服务(向上或向下)即可轻松完成多项任务。在运行容器时 - 当它出现故障时,您必须手动启动另一个。
  • 容器实例之间的通信选项有哪些? (在 swarm 和常规模式下)http?命名管道?其他?
  • 我目前只在同一个网络上的几个 Wildfly 服务器上进行了测试。我不确定其他人,但很想知道。我只读过 RabbitMQ,但似乎找不到链接 atm。
  • 如果在同一台机器上的容器之间使用 http 通信,它会与命名管道大致相同吗?
  • 我不能说。
  • Docker 中是否有对消息总线或类似的内置支持?
  • 我不能说。
  • 是否有任何用于设计、管理、测试和/或调试 Docker 群的 GUI?
  • 我已经测试了 rancher 和 portainer.io,我找到了它们的列表 this link
  • 容器可以列出其他容器,停止/重新启动一些容器并启动新容器吗?
  • 我不确定你为什么要这样做?我想这是可能的,见 this link
  • 是否可以授予容器访问操作系统功能(在我的情况下为 Linux)以配置例如反向代理或 WAN 上的端口转发的权限?
  • 我不能说。
  • 关于docker - 所有 docker swarm 实例都可以在同一台机器上运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50890833/

    相关文章:

    docker - 使用裸机服务器开始使用 docker swarm

    c# - EF Core 无法连接到服务器 - 与网络相关或特定于实例的错误

    c# - 在 ASP.NET Core Web API 应用程序中禁用 Ctrl+C 关闭

    docker - docker-compose:为什么代理和应用服务由于主机名而失败?

    php - 使PHP和Nginx Docker镜像协同工作

    Docker Swarm : bypass load balancer and make direct request to specific containers

    docker - 如何为 Docker 容器中运行的 Flask 应用程序分配 IP

    Docker swarm 容器连接问题

    networking - Docker Swarm - 网络覆盖未连接所有容器

    json - Swagger 文档中的驼峰命名法