docker-swarm中statck与service的区别
- services
services是指一组任务的集合,服务定义了任务的属性,服务有两种模式,如下,两种模式通过 docker service create 的 --mode 参数指定。
(1). replicated services 按照一定规则在各个工作节点上运行指定个数的任务。
(2). global services 每个工作节点上运行一个任务
简单的说:services就是在swarm构建好的集群的基础上进行 “ 单容器创建等容器相关的管理工作 ”。(这里的单容器是指一条指令只能操作一个容器,但这条指令可以在集群的每个节点上生效)
- stack
Stack 是基于 Docker Swarm 之上来完成应用的部署,Stack 能够在单个声明文件中定义复杂的多服务应用。Stack 还提供了简单的方式来部署应用并管理其完整的生命周期:初始化部署 -> 健康检查 -> 扩容 -> 更新 -> 回滚,以及其他功能!它可以通过一个docker-compose.yml文件进行多个容器的管理。
简单的说:stack就是在swarm构建好的集群的基础上进行“ 多容器创建等容器相关的管理工作 ”。(这里的多容器是指基于docker-compose.yml可以操作多个容器,这条指令可以在集群的每个节点上生效)
换句话说:stack可以同时操作多个services。
-
总结
Dockerfile、docker compose 、service、node、 swarm、stack
(1). Dockerfile是用来构建镜像的,一个Dockerfile只能构建一个镜像
(2). docker compose可以在单机上构建一组任务,可以管理多个容器
(3). service 是一组任务,包含多个镜像和容器,通常用于在集群的基础上管理容器
(4). node是swarm中的节点概念,一个节点对应一台服务器。
(5). swarm是用来构建集群
(6). stack是在集群的基础上管理容器,他可以操作多个service