docker swarm是docker原生的集群管理工具,etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现。本文就swarm、etcd和docker搭建一个简易的swarm+etcd+docker系统。但愿能帮助新人对它们有一个直观的认知和了解。 docker
基本架构请参考官网 shell
IP | 角色 |
192.168.0.109 | Client |
192.168.0.201 | etcd |
192.168.0.202 | docker host1 |
192.168.0.203 | docker host2 |
192.168.0.204 | swarm管理机 |
说明: 架构
一、etcd是能够集群的,并且集群中的任何一个节点均可读写,具体的能够本身去实验,这里为了简化整个结构,etcd使用了一台 工具
二、本次实验中的swarm并非使用官网的镜像,而是源码编译安装在物理机上的 url
三、swarm管理机和全部的docker host主机都须要安装swarm。管理节点运行swarm manage命令,docker host主机运行swarm join命令 spa
etcd --name etcd0 --initial-advertise-peer-urls http://192.168.0.201:2380 \ --listen-peer-urls http://192.168.0.201:2380 \ --listen-client-urls http://192.168.0.201:2379 \ --advertise-client-urls http://192.168.0.201:2379 \ --initial-cluster etcd0=http://192.168.0.201:2380
swarm manage -H 0.0.0.0:2375 etcd://192.168.0.201:2379/swarm
首先将docker配置成TCP监听模式,本次实验的监听端口为2375。 code
接下来,将docker主机加入到管理机中,配置以下: ci
docker host1 源码
swarm join --advertise 192.168.0.202:2375 etcd://192.168.0.201:2379/swarm
docker host2 it
swarm join --advertise 192.168.0.203:2375 etcd://192.168.0.201:2379/swarm至此,整个结构就都起来了。