Docker之Swarm管理

1.  Swarm基础

    1.  Docker Swarm命令

        1.  swarm初始化

            docker swarm init,下面是一些选项

                      

        2.  加入集群

            docker swarm join,它包含四个选项           

            

        3.  管理添加节点的口令

            docker swarm join-token

        4.  离开集群

            docker swarm leave

            -f  强制离开,无视警告

        5.  解锁集群

            docker swarm unlock    

        6.  管理解锁密钥

            docker swarm unlock-key

        7.  更新集群

            docker swarm update,选项如下:            

                     

    2.  Docker Node命令

        1.  节点降级

            docker node demote NODE

        2.  查看节点信息

            docker node inspect [OPTIONS] self |NODE

            --format,-f  使用Go template格式化输出信息

            --pretty  用适合人们阅读的格式输出信息

        3.  列出集群节点

            docker node ls [OPTIONS]

            --filter,-f  用过滤器输出指定信息

            --quiet,-q  只显示节点ID

        4.  提升节点权限

            docker node promote NODE

            提升和降级都是只能在管理节点才能执行的命令

        5.  查看任务

            docker node ps [OPTIONS]

            --filter,-f  使用过滤器获取特定信息

            --no-resolve  不把ID映射到名称上

            --no-trunc  不截断输出ID

        6.  删除节点

            docker node rm

        7.  更新节点

            docker node update [OPTIONS] NODE

            

    3.  Docker Stack命令

        1.  部署Docker栈

            docker stack deploy

        2.  查看所有栈

            docker stack ls

        3.  查看栈内任务

            docker stack ps [OPTIONS] STACK

            --filter,-f  使用过滤器获取指定信息

            --no-resolve  不把ID映射到名称上

            --no-trunc  不截断输出ID 

        4.  删除栈

            docker stack rm STACK

        5.  查看栈内的服务

            docker stack services [OPTIONS] STACK

            --filter,-f  使用过滤器获取指定信息

            --format,-f  使用Go template格式化输出信息

            --pretty  用适合人们阅读的格式输出信息

2.  Swarm集群部署

    1.  运行环境

        172.16.1.232  master-node

        172.16.1.233  node1

        172.16.1.234  node2

        关闭防火墙,关闭selinux

        三个节点都安装docker

    2.  初始化swarm集群

        docker swarm init --advertise-addr 172.16.1.232 --listen-addr 172.16.1.232:2377

        执行完以后,会产生一个token,全球唯一的。

    3.  添加节点到swarm集群中

        分别在node1和node2上,执行命令

        docker swarm join --token SWMTKN-1-4roc8fx10cyfgj1w1td8m0pkyim08mve578wvl03eqcg5ll3ig-f0apd81qfdwv27rnx4a4y9jej 172.16.1.232:2377

    4.  在管理节点查看一下状态

        docker node ls

    5.  下线node1

        docker node update --availability drain node1

    6.  恢复node1

        docker node update --availability active node1

    7.  删除node1

        docker node rm --force node1

3.  Swarm网络配置

    1.  swarm上默认已有一个名为ingress的overlay网络,通过docker network ls可以查看

    2.  新建一个overlay网络

        docker network create --driver overlay ngx_net

    3.  创建应用服务

        docker service create --replicas 2 --network ngx_net --name my-test -p 80:80 nginx

    4.  查看服务状态

        docker service ls

    5.  查看服务详情

        docker service ps my-test

4.  Swarm动态扩展服务

    1.  将my-test扩展到5个

        docker service scale my-test=5

    2.  查看各个容器在哪些机器

        docker service ps my-test

    3.  如果node1宕机或者服务停止,node1上的容器会自动转移到其他节点。      

5.  Swarm升级镜像

    docker service update --image nginx:new my-test    

6.  Swarm使用volume

    1.  volumes

        1.  创建一个数据卷

            docker volume create --name myvolume

        2.  创建服务

            docker service create --replicas 2 --network ngx_net --mount type=volume,src=myvolume,dst=/yangjianbo --name my-test -p 80:80 nginx    

            src为/var/lib/docker/volumes/myvolume/_data

            dst为容器内部的目录        

    2.  bind mounts

        1.  创建一个数据卷

            docker volume create --name myvolume

        2.  创建服务

            docker service create --replicas 2 --network ngx_net --mount type=bind,src=/home/yangjianbo,dst=/yangjianbo --name my-test -p 80:80 nginx  

            src为宿主机上任意一个目录

            dst为容器内部的目录           

7.  Swarm集群管理工具Shipyard

          

                    

 

                

                    

              

                

 

posted @ 2024-02-06 16:26  奋斗史  阅读(78)  评论(0)    收藏  举报