【问题标题】:Containers Orchestations and some docker functions容器编排和一些 docker 功能
【发布时间】:2019-05-17 06:37:08
【问题描述】:

我熟悉打包、构建和部署软件或除非是小软件的架构和实践。

如果我突然将概念与特定工具混为一谈(有时是不可避免的),如果我错了,请告诉我。

在路上,我一直在阅读和学习图像和容器术语以及它们各自的关系,以便开始以更好的方式构建工作流软件系统。

我对 docker 上下文中的服务编排有疑问:

  • 容器是对环境的轻量级和可移植封装,在该环境中,我们拥有运行应用程序所需的所有二进制文件和依赖项。好的

  • 我可以使用 容器链接 --link 标志设置容器之间的通信。

我可以使用 docker-compose 替换容器链接的使用,以便自动化我的服务工作流程并使用 .yaml 文件配置运行多容器。

我正在阅读容器编排术语,它定义了当我们有不同的“软件部分”彼此分离时容器之间的关系,以及这些容器如何作为一个系统进行交互。

好吧,我想我已经阅读了很好的文档:P

我的问题是:

一个docker级别,容器链接docker-compose是容器编排的一种方式吗?

或者使用 docker,如果我想做容器编排...我应该使用docker-swarm 吗?

【问题讨论】:

    标签: docker containers orchestration


    【解决方案1】:

    你应该忘记你曾经读过容器链接。它们在纯 Docker 中已经过时多年了。它们与编排问题也不是特别相关。

    Docker Compose 是一个简单的编排工具,但我实际上将它归类为一个编排工具。可以同时启动多个容器;如果它们的配置发生变化,它可以重新启动单个容器。它相当面向 Docker 的原生功能。

    Docker Swarm 主要是一种将多个物理主机连接在一起的方式,docker 命令可以将它们作为连接的集群来定位。我可能不会将这种能力称为“编排”,但它确实具有一定数量的“调度”或“放置”能力(Swarm,而不是你,决定哪些容器在哪些主机上运行)。

    在我可能称之为“编排”工具的其他东西中,我可能会将它们分为两个阵营:

    1. 通用系统自动化工具恰好具有一些 Docker 功能。例如,您可以同时使用 Ansible 和 Salt Stack 来启动 Docker 容器,但您也可以将这些工具用于许多其他事情。他们有能力说“在系统 X 上运行容器 A,在系统 Y 上运行容器 B”,但是如果您需要主机间通信或其他细节,那么您也需要设置它们(可能使用相同的工具)。

    2. 专门构建的 Docker 自动化工具,例如 Docker Compose、Kubernetes 和 Nomad。这些往往有一个更完整的故事,关于如何用一堆容器、服务复制、滚动更新和服务发现构建一个完整的堆栈,但你大多不能使用它们来管理尚未完成的任务在 Docker 中。

    您可能会考虑的其他一些功能:

    • 编排:如何同时启动多个连接的容器?
    • 网络:一个容器如何在集群内与另一个容器通信?外部呼叫者如何连接到系统?
    • 调度:在多主机设置中,哪些容器在哪个系统上运行?
    • 服务发现:当一个容器想要调用另一个容器时,它如何知道该调用谁?
    • 管理平面:作为运营商,您如何做一些事情,例如更改某些特定服务的副本数量,或者更新服务的更新镜像?

    【讨论】:

    • 关于网络,docker 链接只是容器之间通信的一种旧方式。我最近看到了桥梁的概念......
    猜你喜欢
    • 1970-01-01
    • 2017-05-28
    • 2017-01-12
    • 2020-07-11
    • 2017-03-03
    • 2019-07-13
    • 1970-01-01
    • 2012-08-07
    • 2016-07-25
    相关资源
    最近更新 更多