Docker Swarm 资源管理
Docker Swarm
Docker Swarm是Docker官方项目之一,是使用SwarmKit构建的Docker引擎内置的集群管理和编排工具,提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案。使用它,用户可以将多个Docker主机封装为单个大型虚拟Docker主机,快速打造一套容器云平台。
节点
运行Docker的主机可以主动初始化一个Swarm集群或者加入一个已经存在的Swarm集群,这样这个运行Docker的主机就成为一个Swarm集群的节点 node。
节点分为管理节点 manager 和工作节点 worker
管理节点用于Swarm集群的管理,docker swarm命令基本只能在管理节点执行
工作节点是任务执行节点,管理节点将服务 service 下发到工作节点执行
服务与任务
任务 task 是Swarm中最小的调度单位,目前来说就是一个单一的容器
服务 service 是指一组任务的集合,服务定义了任务的属性
服务有两种模式:
- replicated services 按照一定规则在各个节点上运行指定个数的任务
- global services 每个工作节点上运行一个任务
这两种模式可以通过docker service create 的 —mode参数指定
Docker Swarm集群搭建
在Docker服务器上使用 docker swarm init 在初始化一个Swarm集群:
docker swarm init --advertise-addr 192.168.xx.xxx
执行docker swarm init命令的节点自东成为管理节点,同时该命令执行后会打印添加工作节点的命令,将该命令拷贝到工作节点执行后就可以将工作节点添加到Swarm集群中。如果忘记了添加工作节点的命令可以通过 “docker swarm join-token worker” 进行查看。在添加工作节点时可能会添加失败,可以先查看下防火墙,Swarm节点之间通过TCP/UDP进行通信,要确保端口2377,7946,4789是可以通信的,测试环境可以关闭防火墙,重启Docker服务。
这样一个管理节点,两个工作节点的Swarm最小集群就搭建完毕
Swarm集群部署服务
使用docker service命令可以管理Swarm集群中的服务,该命令只能在管理节点运行。
在Swarm集群中创建一个nginx服务,服务创建前确保每个节点:
docker service create --replicas 3 -p 80:80 --name nginx nginx:latest
使用 “docker service ls ” 和 “docker service ps ”命令可以查看运行的服务
服务正常启动后输入任意节点的IP都可以访问nginx服务
Swarm图形化资源管理工具
portainer是Docker图形化管理工具,提供了详细的状态显示面板,应用模板快速部署,容器/镜像/数据卷等的基本操作,事件日志的查看显示,Swarm集群和服务的集中管理,以及用户管理等功能
运行portainer:
# 拉取镜像
docker pull portainer/portainer
# 运行
docker run -d -p 9000:9000 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer
portainer容器启动后就可以在浏览访问,首次登录需要设置admin用户密码
portainer容器运行在Swarm管理节点上,选择local连接后就进入以下页面
点击local后进入详细页面,包含了主机上Docker的镜像,容器,数据卷,Swarm集群信息等
Swarm集群信息
服务信息,在这里可以进行服务的创建,扩容,删除等操作

Docker Swarm 资源管理的更多相关文章
- Docker进阶-资源管理Swarm+Portainer
Docker Swarm资源管理 Docker Swarm是Docker官方三剑客项目之一,提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案. 使用它,用户可以将多个Do ...
- 通过docker-machine和etcd部署docker swarm集群
本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使 ...
- Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
目录 [TOC] 1.环境准备 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...
- (转) Docker swarm - 使用体验 1+2
背景 凭借敏捷开发部署理念的推行,相信对于很多人来说docker这项容器技术已经并不陌生,Docker 1.12引擎发布了快两个月,新引擎中包含了许多特性.诸如: Swarm模式,容器集群的健康检查, ...
- (转) Docker swarm 之介绍与使用
今天,在站内看到一篇关于Docker Swarm 的文章,非常好,在这里转过来,方便日后查阅 :) 原贴链接: http://www.cnblogs.com/rio2607/p/4445968.htm ...
- 从零开始搭建Docker Swarm集群
从零开始搭建Docker Swarm集群 检查节点Docker配置 1. 打开Docker配置文件(示例是centos 7)vim /etc/sysconfig/docker2. 添加-H tcp:/ ...
- docker + swarm 集群
docker + swarm 集群 导读 Swarm是Docker公司在2014年12月初新发布的容器管理工具.和Swarm一起发布的Docker管理工具还有Machine以及Compose.Swar ...
- 基于 Consul 的 Docker Swarm 服务发现
Docker 是一种新型的虚拟化技术,它的目标在于实现轻量级操作系统的虚拟化.相比传统的虚拟化方案,Docker 虚拟化技术有一些很明显的优势:启动容器的速度明显快于传统虚拟化技术,同时创建一台虚拟机 ...
- docker 1.12 版本 docker swarm 集群
博客已经迁移到 个人博客中 个人博客 更新地址: http://www.xf80.com/2016/10/25/docker-swarm-1.12/ docker 1.12 版本 的新特性 (1)do ...
随机推荐
- 基于springboot1.5.9整合shiro时出现静态文件找不到的问题
开门见山吧,上午对shiro进行整合了下,因为之前使用ssm框架对shiro框架整合过,所以觉得使用springboot再次对shiro框架进行整合也是没啥问题,但最后整合完之后,使用thymelea ...
- 结题报告--P5551洛谷--Chino的树学
题目:点此 题目描述 Chino树是一棵具有某种性质的满二叉树,具体来说,对于这棵树的每一个非叶子节点,它的左子节点(A)(A)(A)的右子节点(C)(C)(C)与它的右子节点(B)(B)(B)的左子 ...
- Oracle 11g rac开启归档
Oracle 11g rac开启归档 查看目前归档状态 #节点1 ykws1 SQL> archive log list; Database log mode No Archive Mode A ...
- scrapy中间件中使用selenium切换ip
scrapy抓取一些需要js加载页面时一般要么是通过接口直接获取数据,要么是js加载,但是我通过selenium也可以获取动态页面 但是有个问题,容易给反爬,因为在scrapy中间件mid中使用sel ...
- RocketMQ-2.RocketMQ的负载均衡
目录 RocketMQ的负载均衡 producer对MessageQueue的负载均衡 producer负载均衡 系统计算路由MessageQueue 自定义路由MessageQueue Consum ...
- scrapydweb的初步使用(管理分布式爬虫)
https://github.com/my8100/files/blob/master/scrapydweb/README_CN.md 一.安装配置 1.请先确保所有主机都已经安装和启动 Scrapy ...
- JetBrains Quest 3
起因 今天早上看了一篇博文: 此时的我:"哎,这等好事不等我!" 然后......我打开官方推特: "什么?最后的任务?" 于是就有了这篇文章 开始操作 1.神 ...
- centOS7python版本升到3
我们使用Python源代码编译的方式安装python3. 一.安装必要工具 yum-utils ,它的功能是管理repository及扩展包的工具 (主要是针对repository) $ sudo y ...
- 龙生九子-浅谈Java的继承
龙生九子-浅谈Java的继承 书接上回,我们之前谈过了类和对象的概念,今天我来讲一讲面向对象程序设计的另外一个基本概念-继承 目录 为什么需要继承 自动转型与强制转型 继承能干啥 复写和隐藏 supe ...
- python飞机大战简单实现
小游戏飞机大战的简单代码实现: # 定义敌机类 class Enemy: def restart(self): # 重置敌机的位置和速度 self.x = random.randint(50, 400 ...