原始“Docker Swarm”的漂亮功能之一是:
允许工具(例如docker
CLI和docker-compose
)对它们是否针对单个Docker Engine实例或Swarm集群运行不了解。
Docker 1.12带来了集成的“群发模式”,这是Docker编排的一个令人兴奋的新观点。但是,在此过程中我们是否丢失了“作为虚拟Docker主机的群集”功能?对群模式主节点使用docker run
似乎只在主节点本身上启动容器。 docker ps
现在不返回每个容器在哪台机器上运行的提示。确实,现在必须使用特定于群集的子命令(例如docker service
和docker deploy
)在整个群集中执行操作吗?
最佳答案
这是正确的解释。就像使用单个引擎一样,您将更长久地管理Swarm,而Swarm中用于管理和调度的命令正在更改。使用docker run
和docker-compose
将针对单个主机。需要使用docker service
来调度群。撰写将移至docker deploy
并使用docker stack
管理的包。我想说的是,新设计的一大优点是,当您管理集群与单个节点时,您不会忘记,因为您没有检查$DOCKER_HOST
的设置。
已经考虑使用docker-compose bundle
进行迁移,但是没有什么可以阻止您在1.12平台上运行旧的swarm容器实现并像往常一样访问它。您只是无法获得1.12群的编排好处。