docker swarm 是什么?

  swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。

  docker swarm 跟 k8s 一样,只是swarm比k8s上手简单,当然功能上也比k8s少一些,对于一些小型企业也够用了。

docker swarm的一些概念

  node节点:swarm是一系列节点的集合,而节点可以是一台裸机或者一台虚拟机。一个节点能扮演一个或者两个角色,manager或者worker。

    service:是一个抽象的概念,它只是一个对运行在swarm集群上的应用服务,所期望状态的描述。也可以看作就是你希望运行的一个服务,比如一个nginx服务。

    stack:stack 是一组服务的集合。

    Yaml文件:服务定义文件参考 https://docs.docker.com/compose/compose-file/

部署Docker swarm

  两台安装docker的Ubuntu主机。找一台当manager节点。

  运行命令  docker swarm init --advertise-addr 192.168.0.100

  运行成功后,会出现 join 的命令,复制下来粘贴到worker节点运行即可。

  // 查看token的方法

  docker swarm join-token manager:查看加入manager的命令

  docker swarm join-token worker:查看加入woker的命令。

  docker swarm join-token --rotate worker:重置woker的Token。

  运行成功后在manager节点运行命令 

  docker node ls 查看集群节点。

  docker service ls 查看运行的服务

部署服务  

创建 nginx.yml 文件

version: '3.7'
services:

  nginx:
    image: nginx:latest

    restart: always
    ports:
      - 8080:80
    deploy:
      mode: replicated
      replicas: 1

docker stack deploy -c nginx.yml nginx-stack

参考网站:https://yeasy.gitbooks.io/docker_practice/content/swarm/