Docker Swarm实现服务的滚动更新的示例代码_docker

来源:脚本之家  责任编辑:小易  

你好,方法如下检查节点Docker配置 1.打开Docker配置文件(示例是centos 7)vim/etc/sysconfig/docker2.添加-H tcp:/0.0.0.0:2375到OPTIONSOPTIONS='-g/cutome-path/docker-H tcp:/0.0.0.0:2375'3.CentOS6.6 需要另外添加www.zgxue.com防采集请勿采集本网。

一、什么是Docker Swarm?

2.我们已经实现Docker标准化,但是如何在这些标准之上能够拓展Docker生态系统的广度和深度?3.如何重构应用程序交付流水线以便支持基于容器的快速迭代?4.将传统整体型monolithic应用分解为微服务以后,

Docker Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。

Docker Swarm 是官方发布的集群容器管理工具。它的特点是:比较轻量级,无缝支持标准的docker API。深入浅出Swarm 一文很清晰地讲解了它的架构和命令。本文从零开始搭建并管理一个swarm集群。准备工作

Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。

swarm运行在其中。这个Droplet会被设置为Swarm主控节点,我们还要创建另外一个Droplet,并将其设定为Swarm节点代理。创建machine的命令如下: docker-machine create-driver digitalocean-digitalocean-

从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm),并且已经内置了服务发现工具,我们就不需要像之前一样,再配置 Etcd 或者 Consul 来进行服务发现配置了。

在这篇文章中,我先简单介绍Docker Machine,再讲述怎么用它创建Swarm Docker集群。一旦你从单机测试过度到多机器分布式部署,这工具相当有用。Docker Compose用来启动你在Swarm集群中的应用,这个我会在

二、Docker Swarm的体系架构

基于下面的需求: 1.虽然单个Docker容器能够100%移植到任何平台,但是Docker Machine,Docker Swarm,和Docker Compose.这三个组件分别覆盖分布式应用整个周期的不同阶段。并且是可以串联起来。

这个图作为一个整体实际上都处于一个所谓的集群中,它可能对应了一到多台的实际服务器。每台服务器上都装有Docker并且开启了基于HTTP的DockerAPI。这个集群中有一个SwarmManager的管理者,用来管理集群中的容器资源。管理者的管理对象不是服务器层面而是集群层面的,也就是说通过Manager,我们只能笼统地向集群发出指令而不能具体到某台具体的服务器上要干什么(这也是Swarm的根本所在)。至于具体的管理实现方式,Manager向外暴露了一个HTTP接口,外部用户通过这个HTTP接口来实现对集群的管理。对于稍微大一点的集群,最好是拿出一台实际的服务器作为专门的管理者,作为学习而言,也可以把管理者和被管理者放在一台服务器上。

三、Docker Swarm服务的滚动更新

Docker Swarm可以实现服务平滑升级,即服务不停机更新,客户端无感知。下面我们通过一个具体的例子,来为大家演示。这里我们将部署一个基于nginx的web应用程序服务,部署在node节点上。我们将创建同一个应用的两个版本:version 1和 version 2

创建一个Dockerfile,并使用docker build进行编译。

FROM nginxRUN echo '<h1>Swarm:Version 1 <h1>' > /usr/share/nginx/html/index.html

注意:为了使得Swarm集群中的每个节点都能访问到镜像,我们这里把生成的镜像上传到自己的镜像仓库中。

docker logindocker build -t collenzhao/mynginx:v1 .docker push collenzhao/mynginx:v1

创建Swarm的服务,即:通过镜像启动容器

docker service create -p 7788:80 --replicas 3 --name myswarmtest collenzhao/mynginx:v1

通过docker service ls查看部署的服务。

通过docker service ps myswarmtest查看部署服务的详细信息

效果如下图所示

更新之前的Dockerfile,注意版本号变为:2

FROM nginxRUN echo '<h1>Swarm:Version 2 <h1>' > /usr/share/nginx/html/index.html

使用docker build进行编译

docker build -t collenzhao/mynginx:v2 .

使用docker push上传到docker hub

docker push collenzhao/mynginx:v2

更新之前在Swarm部署的服务,版本号变成了2

docker service update --image collenzhao/mynginx:v2 myswarmtest

效果如下如所示

到此这篇关于Docker Swarm实现服务的滚动更新的示例代码的文章就介绍到这了,更多相关Docker Swarm 滚动更新内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

1.运行Swarm的先决条件我们必须在所有节点安装Docker 1.4.0或更高版本。虽然各个节点的IP地址不需要要公共地址,但是Swarm管理器必须可以通过网络访问各个节点。注意:Swarm当前还处于beta版本,因此功能特性等还有可能发生改变,我们不推荐你在生产环境中使用。2.创建Swarm集群现在,我们将通过运行下面的命令来创建Swarm集群。各个节点都将运行一个swarm节点代理,该代理会注册、监控相关的Docker守护进程,并更新发现后端获取的节点状态。下面的命令会返回一个唯一的集群ID标记,在启动节点上的Swarm代理时会用到它。在集群管理器上运行:docker run swarm createCreating Swarm ClusterCreating Swarm Cluster3.启动各个节点上的Docker守护进程我们需要登录进我们将用来创建集群的每个节点,并在其上使用-H标记启动Docker守护进程。它会保证Swarm管理器能够通过TCP访问到各个节点上的Docker远程API。要启动Docker守护进程,我们需要在各个节点内部运行以下命令。docker-H tcp:/0.0.0.0:2375-dStarting Docker DaemonStarting Docker Daemon4.添加节点在启用Docker守护进程后,我们需要添加Swarm节点到发现服务,我们必须确保节点IP可从Swarm管理器访问到。要完成该操作,我们需要在各个节点上运行以下命令。docker run-d swarm join-addr=:2375 token:/Adding Nodes to ClusterAdding Nodes to Cluster注意:我们需要用步骤2中获取到的节点IP地址和集群ID替换这里的和。5.开启Swarm管理器现在,由于我们已经获得了连接到集群的节点,我们将启动swarm管理器。我们需要在集群管理器中运行以下命令。docker run-d-p:2375 swarm manage token:/Starting Swarm ManagerStarting Swarm Manager6.检查配置一旦管理运行起来后,我们可以通过运行以下命令来检查配置。docker-H tcp:/infoAccessing Swarm ClustersAccessing Swarm Clusters注意:我们需要替换为运行swarm管理器的主机的IP地址和端口。7.使用docker CLI来访问节点在一切都像上面说得那样完美地完成后,这一部分是Docker Swarm最为重要的部分。我们可以使用Docker CLI来访问节点,并在节点上运行容器。docker-H tcp:/infodocker-H tcp:/run.8.监听集群中的节点我们可以使用swarm list命令来获取所有运行中节点的列表。docker run-rm swarm list token:/内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • docker swarm从部署到基本操作
  • 详解docker swarm 在持续集成测试中的应用
  • 使用docker swarm搭建分布式爬虫集群的方法示例
  • docker swarm如何在指定的node上运行指定的容器
  • 详解docker swarm服务发现和负载均衡原理
  • docker swarm 集群故障与异常详解
  • docker使用swarm组建集群的方法
  • docker swarm入门实例详解
  • 详解使用docker 1.12 搭建多主机docker swarm集群
  • 轻松安装docker并运行docker swarm模式
  • docker kubernetes dashboard安装部署详细介绍
  • 将spring boot应用打入docker中运行的实现方法
  • docker使用阿里云镜像仓库的方法
  • dockertoolbox文件挂载的实现代码
  • ubuntu docker 源码编译(1.9.1 )详解
  • 使用docker-compose离线部署django应用的方法
  • docker常用命令总结之安装、镜像、容器基本操作
  • 在docker中利用tomcat快速部署web应用的方法示例
  • docker出现cannot connect to the docker daemon. is the docker
  • docker端口映射的实现
  • 如何配置一个 Docker Swarm 原生集群
  • 如何配置一个 Docker Swarm 原生集群
  • 如何配置一个 Docker Swarm 原生集群
  • 如何从零开始搭建Docker Swarm集群
  • 如何从零开始搭建Docker Swarm集群
  • docker swarm 有在生产环境中用的企业吗
  • 如何使用docker+machine部署swarm集群
  • 如何调用docker swarm service的api来创建及更新服务
  • Docker Compose 怎么和Docker Swarm配合使用的
  • swarm集群中可以使用docker run来调度吗
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全dockerhyper-vvmwarevirtualboxxenserverkvmqemuopenvzxencloudstackopenstack云计算技术云其它首页服务器云和虚拟化dockerdocker swarm从部署到基本操作详解docker swarm 在持续集成测试中的应用使用docker swarm搭建分布式爬虫集群的方法示例docker swarm如何在指定的node上运行指定的容器详解docker swarm服务发现和负载均衡原理docker swarm 集群故障与异常详解docker使用swarm组建集群的方法docker swarm入门实例详解详解使用docker 1.12 搭建多主机docker swarm集群轻松安装docker并运行docker swarm模式docker kubernetes dashboard安装部署详细介绍将spring boot应用打入docker中运行的实现方法docker使用阿里云镜像仓库的方法dockertoolbox文件挂载的实现代码ubuntu docker 源码编译(1.9.1 )详解使用docker-compose离线部署django应用的方法docker常用命令总结之安装、镜像、容器基本操作在docker中利用tomcat快速部署web应用的方法示例docker出现cannot connect to the docker daemon. is the dockerdocker端口映射的实现docker 给运行中的容器设置端口映docker 清理命令集锦docker获取镜像报错docker: erroubuntu14.04+docker的安装及使用docker.service启动失败:unit ndocker容器如何优雅的终止详解浅谈docker-compose网络设置之necentos7 安装docker 解决启动不了详解docker国内镜像拉取和镜像加docker如何固定ip设置的方法docker常用命令总结之安装、镜像、容器基docker容器通过独立ip暴露给局域网的方法docker指令收集整理(收藏)docker 查询或获取私有仓库(registry)中的浅析docker-compose部署mysql无法访问的问docker上传镜像至私有仓库的方法示例docker下mysql设置字符集的方法docker镜像无法上传的解决方法详解docker搭建redis集群的环境搭建在docker上安装运行mysql实例
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved