docker 1.12 版本 的新特性
(1)docker swarm:集群管理,子命令有init, join, leave, update
(2)docker service:服务创建,子命令有create, inspect, update, remove, tasks
(3)docker node:节点管理,子命令有accept, promote, demote, inspect, update, tasks, ls, rm
(4)docker stack/deploy:试验特性,用于多应用部署, 类似与 docker-compose 中的特性。
我在使用的时候还是 测试版本,所以使用
wget -qO- https://test.docker.com/ | sh
进行安装配置
安装完毕以后:
[root@swarm-manager ~]# docker version Client: Version: 1.12.0-rc2 API version: 1.24 Go version: go1.6.2 Git commit: 906eacd Built: OS/Arch: linux/amd64 Server: Version: 1.12.0-rc2 API version: 1.24 Go version: go1.6.2 Git commit: 906eacd Built: OS/Arch: linux/amd64
一、 我们首先来看看 1.12 中 新特性里面的 内置 swarm 命令 (swarmkit采用raft协议构建集群)
[root@swarm-manager ~]# docker swarm --help Usage: docker swarm COMMAND Manage Docker Swarm Options: --help Print usage Commands: init Initialize a Swarm join Join a Swarm as a node and/or manager update Update the Swarm leave Leave a Swarm inspect Inspect the Swarm Run 'docker swarm COMMAND --help' for more information on a command.
这里 命令有 5个
Commands:
init Initialize a Swarm
join Join a Swarm as a node and/or manager
update Update the Swarm
leave Leave a Swarm
inspect Inspect the Swarm
1. init 初始化,一个 Swarm 集群,执行效果:
[root@swarm-manager ~]# docker swarm init Swarm initialized: current node (0vwpni05mew2j84i6gjet44iu) is now a manager.
这里显示 初始化了一个 Swarm 集群,并把这机器做为 管理节点。
[root@swarm-manager ~]#docker node ls ID NAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS 0vwpni05mew2j84i6gjet44iu * swarm-manager Accepted Ready Active Leader
执行 docker node ls 可以查看 Swarm 的集群情况 (只能在 manager 中执行)
[root@swarm-manager ~]# netstat -lan|grep 2377
可以看到 群集开放了一这个 2377 的端口。
默认绑定 0.0.0.0:2377 ,当然我们也可以使用 docker swarm init --listen-addr <MANAGER-IP>:<PORT> 进行绑定ip
2377 这个端口是用于 Swarm 中 node 节点加入使使用的。
2. join 加入 Swarm 集群, 可加入做为 node 节点,也可加入 作为 管理节点。
[root@swarm-node-1 ~]#docker swarm join 10.6.0.140:2377 This node joined a Swarm as a worker.
这里在 node-1 里面执行了 join 命令,加入了 10.6.0.140 这个 manager 这个 Swarm 集群里
[root@swarm-manager ~]#docker node ls ID NAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS 0vwpni05mew2j84i6gjet44iu * swarm-manager Accepted Ready Active Leader 4mqsmp0gzlqeicit98ce8wh2q swarm-node-1 Accepted Ready Active
这里可以看到 node-1 已经加入到 swarm 的集群里面来了。
3. update 命令, 只提示 updated ,具体作用尚不明白,应该是立刻刷新 swarm 的群集信息
[root@swarm-manager ~]#docker swarm update Swarm updated.
4. leave 命令, 离开 Swarm 集群, 一个docker 只能加入一个node.
[root@swarm-node-1 ~]#docker swarm leave 10.6.0.140:2377
5. inspect 命令, 查询 Swarm 集群 的整体信息。 (只能在 manager 中执行)
[root@swarm-manager ~]#docker swarm inspect [ { "ID": "c052zw5ll0ugw08shg2xf7ajp", "Version": { "Index": 11 }, "CreatedAt": "2016-06-23T02:09:18.935434519Z", "UpdatedAt": "2016-06-23T02:09:19.155114277Z", "Spec": { "Name": "default", "AcceptancePolicy": { "Policies": [ { "Role": "worker", "Autoaccept": true }, { "Role": "manager", "Autoaccept": false } ] }, "Orchestration": { "TaskHistoryRetentionLimit": 10 }, "Raft": { "SnapshotInterval": 10000, "LogEntriesForSlowFollowers": 500, "HeartbeatTick": 1, "ElectionTick": 3 }, "Dispatcher": { "HeartbeatPeriod": 5000000000 }, "CAConfig": { "NodeCertExpiry": 7776000000000000 } } } ]
二、 接下来我们来看看 service 命令。