创建一个swarm集群

  1. 创建一个管理机器

    使用docker-machine创建一个管理机器manager1

    docker-machine create --driver virtualbox manager1
    
  2. 连接管理机器

    docker-machine ssh manager1
    
  3. 将该机器初始化为swarm的管理机器

    在这之前可以先使用docker-machine ip manager1查看manager1的ip地址

    docker swarm init --advertise-addr 192.168.99.101
    

  4. 查看swarm的当前状态

    docker info
    

  5. 查看节点信息

    docker node ls
    

    *旁边的节点ID表明当前连接此节点上。

将节点添加到集群中

  1. 创建2个节点机器分别为worker1worker2

    docker-machine create --driver virtualbox worker1
    docker-machine create --driver virtualbox worker2
    
  2. 同样的使用ssh连接到节点机器,以worker1为例

    docker-machine ssh worker1
    
  3. 将当前机器作为节点加入swarm

    docker swarm join --token SWMTKN-1-2s6afc25ee1sygab055hct8ydjyb9x7jgyu0ycbwrvs24fpf36-9l7f7v5pk9q39o6rji0b3qk4w 192.168.99.101:2377
    

    如果这里没有记住之前的加入命令,可以去manager机器上使用命令docker swarm join-token worker查看加入命令

  4. 以同样的方式创建第二台机器并加入集群

将服务部署到swarm

  1. 在管理机器上部署服务

    docker service create --replicas 1 --name helloworld alpine ping docker.com
    
    • docker service create 创建服务
    • --replicas 1 创建几个服务
    • --name helloworld 服务名为helloworld
    • alpine ping docker.com 使用alpine容器 执行命令ping docker.com

  2. 检查服务

    查看helloword的服务详情

    docker service inspect helloworld
    docker service inspect helloworld --pretty
    

    可以ssh到节点上,并在节点上查看服务状态,这里在manager1节点上

  3. 横向扩展服务

    在管理节点上更改服务个数

    docker service scale helloworld=5
    

    查看服务状态

    docker service ls
    docker service ps helloword
    


  4. 删除服务

    docker service rm helloworld