Docker 1.12在“swarm模式”下能提供“单一的虚拟Docker主机”吗?

5

最初的 "Docker Swarm" 之一的巧妙功能是:

将一组 Docker 主机转换为单个虚拟 Docker 主机

这使得工具(如 docker CLI 和 docker-compose)可以不考虑它们是否针对单个 Docker 引擎实例或 Swarm 集群进行操作。

Docker 1.12 带来了一个集成的 "swarm 模式",这是 Docker 编排的令人兴奋的新方式。但是,我们是否在此过程中失去了 "集群作为虚拟 Docker 主机" 的功能?只使用 swarm-mode 主节点上的 docker run 命令似乎只会在主节点本身上启动容器。现在,docker ps 不再返回每个容器运行在哪台机器上的提示。是不是现在必须使用特定于集群的子命令,例如 docker servicedocker deploy 在整个集群上执行操作?

1个回答

9
这是正确的理解。你不能像管理单个引擎那样管理Swarm,Swarm中管理和调度的命令正在改变。使用docker rundocker-compose只能针对单个主机。必须使用docker service来在Swarm上进行调度。Compose正在转移到bundle,你可以使用docker deploydocker stack进行管理。新设计的一个巨大优点是不会因为没有检查$DOCKER_HOST的设置而忘记管理Swarm和单个节点。
迁移已经考虑到了docker-compose bundle,并且没有什么阻止你在1.12平台上运行旧的Swarm容器实现并像以前一样访问它。你只是不会得到1.12 Swarm的编排优势。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接