版本要求:docker须是1.4.0以上的版本;所有的节点的版本是相同的。
test:
#docker -v ///我按照docker官网方式升级成了17.10版本
Docker version 17.10.0-ce-rc2, build af94197
两台虚拟机:
two-smoker:192.168.221.135
three---joker:192.168.221.134
///两台虚拟机拉取swarm镜像
#docker pull swarm
创建docker swarm集群
smoker:#docker run --rm swarm create ///该命令会返回一个集群的ID,要记住很有用
在smoker上运行swarm代理
#docker run -d --name smoker swarm join --addr=192.168.221.135:2375 token://集群ID
在joker上运行swarm代理
#docker run -d --name joker swarm join --addr=192.168.221.134:2375 token://集群ID
可以查看smoker和joker的代理日志
#docker logs 相应的代理ID
可以在smoker和joker上列出swarm的节点
#docker run --rm swarm list token://集群ID
启动swarm集群管理者
#docker run -dp 2380:2375 swarm manage token://集群ID
/在swarm集群中运行docker info命令
#docker -H tcp://localhost:2380 info
如果这个命令不成功,就是都不出container和node的信息,返回都是0.
解决:是docker守护进程的问题。就是其他主机无法读取dockers信息。专业的说法是:只有链接到docker的远程操作控制接口2375
#vim /lib/systemd/system/
docker.service
/所有node都增加一行,生产环境不用2375
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
#systemctl daemon-reload
#systemctl restart docker