
说明
本文档针对docker swarm操作。
针对的系统是以一个本地的测试系统为例。其中机器信息如下,172.16.1.13作为docker swarm的管理机。
本地测试的机器列表信息:
| 主机名 | 模拟的外网 | 内网IP | 部署模块 |
|---|---|---|---|
| mini01 | 10.0.0.11 | 172.16.1.11 | tomcat、hadoop-datanode、hbase-regionserver 【swarm 管理】 |
| mini02 | 10.0.0.12 | 172.16.1.12 | tomcat、hadoop-datanode、hbase-regionserver 【swarm 管理】 |
| mini03 | 10.0.0.13 | 172.16.1.13 | visualizer、spark、zookeeper、hadoop-namnode、hbase-master【swarm 管理机】 |
docker swarm初始化
根据规划在172.16.1.13这台机器上操作:
1 | [root@mini03 ~]# docker swarm init # 针对机器只有一个IP的情况 |
得到加入到该swarm的命令
1 | [root@mini03 ~]# docker swarm join-token worker |
初始化网络
初始化一个swarm网络,让系统组件使用这个指定的网络。
1 | [root@mini03 ~]# docker network create -d overlay --attachable zhang |
删除网络【慎用】
删除docker中的zhang网络
1 | [root@mini03 docker-swarm]# docker network rm zhang |
加入或退出swarm管理
在mini01、mini02上执行 如下命令。
1 | docker swarm join --token SWMTKN-1-4929ovxh6agko49u0yokrzustjf6yzt30iv1zvwqn8d3pndm92-0kuha3sa80u2u27yca6kzdbnb 172.16.1.13:2377 |
当前swarm有哪些节点
1 | [root@mini03 ~]# docker node ls |
退出当前的swarm节点
1 | # 在swarm管理机mini03上的操作 |
swarm管理机退出swarm
首先需要删除所有节点,然后强制退出swarm即可
1 | [root@mini03 ~]# docker node ls |
当前swarm有哪些服务
1 | [root@mini03 ~]# docker service ls # 只是示例,不是实际数据 |
swarm标签管理
标签添加
根据最开始的主机和组件部署规划,标签规划如下:在swarm管理机mini03上执行
1 | # 给mini01机器的标签 |
删除标签
在swarm管理机mini03上执行,示例如下:
1 | docker node update --label-rm zookeeper mini03 |
查看swarm当前的标签
在swarm管理机mini03上执行:
1 | [root@mini03 ~]# docker node ls -q | xargs docker node inspect -f '{{.ID}}[{{.Description.Hostname}}]:{{.Spec.Labels}}' |
查看日志
启动容器时,查看相关日志,例如如下:
1 | docker stack ps hadoop |