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至此,整個結構就都起來了。