DevOps - Docker环境搭建图文教程 - Docker Swarm篇

Docker是开源的应用容器引擎,能很好地支持DevOps中相当重要的云计算,为了搭建完整的应用级别的Docker环境,我们一起开始探索吧。

本篇知识点如下,将分为三部分来介绍:

Registry(v2)

Shipyard

Docker Swarm(本篇)


先来看两张图

Docker Swarm是用于创建Docker主机(运行Docker守护进程的服务器)集群的工具,使用Swarm操作集群,会使用户感觉就像是在一台主机上进行操作。

在我们演示之前,请准备:至少2台可以互相联网的机器,并安装好Docker 1.12或以上版本。

1 初始化 Swarm

在一台机器上,通过运行init命令,初始化一个Leader(默认端口:2377)

若忘记token,可以运行以下命令查询manager的tokern

2 加入集群

在其他机器上通过运行 docker swarm join 命令来加入一个集群,token在第1步中查看

3 在Leader机器上查看

可以看到节点已加入集群,也可以在节点机器上运行此命令

4 创建服务

docker service create --name my_web --replicas 4 --publish 9001:80 nginx

创建服务

稍微讲解一下参数

docker service create:创建服务的命令

--name my_web:指定服务的名字

--replicas 3:指定创建容器的实例数量

--publish 9001:80:将主机的9001端口映射到容器的80端口上

nginx:镜像名称

注意,可以在集群中任意一台机器上进行操作

运行完后,我们可以通过:docker service ls 来查看服务的运行状态

服务状态
在其中一台主机上运行 docker ps -a 查看
在另一台主机上运行 docker ps -a 查看

可以看到在第一台主机上,有my_web.2, my_web.3两个容器实例正在运行,而在另外一台主机上有my_web.1, my_web.4两个容器实例在运行(随机分配的)

5 Scale 横向扩展

在需要扩展服务里,可能通过 docker service update命令来进行操作:

docker service update my_web --replicas 5

这个命令将原来的my_web服务的实例数变成了:5

运行扩展命令后可以快速验证

使用Docker Swarm的神奇之处在于,在任意一台主机上进行访问,都可以访问创建的nginx服务,原因是docker会在iptables中注册相应的端口,我们可以在任意主机上查看iptable来验证

iptables -nL --line-number

另一个使用Docker Swarm的神奇之处,是docker会帮我们管理容器,比如我们刚刚调整了容器的实例个数为:5,那docker swarm就会确保总是有5个可用的实例在运行,我们可以通过人为地停止某一个容器实例,过一会儿,我们就会发现,docker swarm帮我们创建了另外一个新的容器实例,补全了5个。而之前那个被中止的容器(尸体)还在,我们可以对其进行检查操作。

6 删除服务

最后,当我们不需要服务里,可以通过 docker service rm命令来移除服务

可以使用 docker service ls, docker ps -a 来验证

总之,Docker Swarm能非常方便地帮我们编排我们的容器实例,操作也相当的简单。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 要扩大公司的业务规模,你必须采用与此前截然不同的工作方式。在公司的发展过程中,会遇到若干个转折点,每次都要经历发现...
    阿东咚咚咚阅读 679评论 0 1
  • 快到我们的一周年了,时间过得好快啊,去年大概这个时候吧,我收到了你寄来的生日礼物和一周年纪念日礼物。有你写给我的日...
    撒啦嗨吆阅读 175评论 0 0
  • 曾经把不开心的过往写在纸上,然后用火机点燃那张纸 把纸烧到全化为灰烬,就权且当是忘记了那些过往,所以心情便舒坦了许...
    卞音阅读 157评论 0 0
  • 21世纪是一个完全意义上的信息时代,在商业领域不断创新的信息技术与信息应用,将商业环境推向更加完全的智能化、知识化...
    HR马阅读 927评论 0 0