一、创建集群

1、初始化manager节点

  1. # xxx为manager的ip地址
  2. docker swarm init --advertise-addr xxx.xxx.xxx.xxx

会输出以下内容,注意加粗斜体命令,加入集群需要使用

Swarm initialized: current node (pk4p936t4e03cpse3izuws07s) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token xxx xxx.xxx.xxx.xxx:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
# 查看加入节点的命令
docker swarm join-token worker
docker swarm join-token manager

2、worker加入集群,在其他docker服务器运行上面命令

docker swarm join --token xxx xxx.xxx.xxx.xxx:2377

3、查看集群情况

docker node ls

二、安装Portainer

1、创建portainer.yml文件

version: '3'
services:
  portainer:
    image: portainer/portainer
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/data/docker/data/portainer:/data"
    ports:
      - 9000:9000

2、启动portainer服务

docker-compose -f portainer.yml up -d

3、访问portainer并修改密码

http://xxx.xxx.xxx.xxx:9000

4. 添加portainer agent

docker swarm集群搭建及使用Portainer管理使用Docker Swarm环境 - 图1

5. 添加Endpoints

docker swarm集群搭建及使用Portainer管理使用Docker Swarm环境 - 图2

6. 云服务防火墙问题

Docker版本1.12+
集群节点之间保证TCP 2377、TCP/UDP 7946和UDP 4789端口通信   
TCP端口2377集群管理端口
TCP与UDP端口7946节点之间通讯端口
TCP与UDP端口4789 overlay网络通讯端口

以worker端加入这个集群:docker swarm join-token worker
//添加标签
docker node update —label-add role=ecoupons-gz ecoupons-gz
//删除标签
docker node update —label-rm role ecoupons-gz
//查看标签
docker node inspect ecoupons-gz