官方文件中演示時用到了五颱主機/虛擬機器;
這裡因為資源有限,只用三颱;
接下來的所有操作都是以root使用者進行的。
公升級軟體包(操作物件:manager0,node0,node1
);
apt-get update && apt-get -y upgrade && apt-get -y install curl
安裝docker引擎(操作物件:manager0,node0,node1
);
curl -ssl | sh
配置並啟動docker引擎,令其監聽swarm節點的2375埠(操作物件:node0,node1
)
docker daemon -h tcp: -h unix:///var/run/docker.sock
前面已經列出了本次學習用到的三颱主機的主機名以及其ip位址,下面的操作用到的ip也是這三個主機ip。
拉取映象
docker pull progrium/consul
啟動發現後端
docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap
建立主管理員(操作物件:manager0
)
docker run -d -p 4000:4000 swarm manage -h :4000 --replication --advertise 192.168.2.56:4000 consul:
因為這裡的manager0既是主管理員又是發現服務後台,所以--advertise
和consul
的ip都是192.168.2.56
。
配置節點(操作物件:node0,node1
)
# 操作物件:node0(ip:192.168.2.77)
docker run -d swarm join --advertise 192.168.2.77:2375 consul:
# 操作物件:node1(ip:192.168.2.129)
docker run -d swarm join --advertise 192.168.2.129:2375 consul:
獲取主管理員和各節點的資訊(操作物件:manager0
):
docker -h :4000 info
在集群中執行容器(操作物件:manager0
):
docker -h :4000 run hello-world
通過多次重複上面的操作出現了下面的結果,主管理員在兩個節點上建立的容器的數量趨於相等(這裡執行的容器是跑的乙個core api demo,如果執行的是上面的指令,狀態應該是exited)。
主管理員操作節點的容器:
# 檢視集群節點的容器列表
docker -h :4000 ps
# 刪除容器
docker -h :4000 rm -f containerid
# 啟/停容器
docker -h :4000 start/stop/restart containerid
與直接操作的區別就是docker
後面加了-h :4000
Docker Swarm排程策略
swarm在用命令swarm manager啟動swarm manager時,可用 strategy指定排程策略。swarm提供了三種排程策略計算節點的排名,在排程 例如選擇哪乙個節點執行容器時 時,取排名最前的節點。這三種排程策略是 spread binpack random random策略 隨...
docker swarm核心概念
翻譯自docker官方文件,原文 本節介紹了docker1.12中集群管理和編排特性的特有概念。節點是swarm中的乙個docker引擎例項。你也可以把它想成是乙個docker節點。你可以在乙個物理機或雲伺服器上執行多個節點,但生產環境中的swarm部署通常包括分布在多個物理機和雲平台上的docke...
docker swarm 管理服務
docker swarm中服務的概念是 乙個服務包含swarm集群中多個節點,每個節點都可以部署服務,每個服務也包含多個相關的容器。docker service help commands create create a new service inspect display detailed in...