Docker-学习总结(集群管理-Docker Stack+Portainer图形)

Docker Stack

概念

  • 技术由来:Docker Swarm在大规模场景下的多服务部署和管理是一件很难的事情,为解决此问题,产生了Docker stack,
    Docker Stack基于Docker Swarm之上来完成对多服务进行部署和管理的
  • 实现方式:通过使用与Compose一样的yml文件中定义应用,然后通过 docker stack deploy 命令完成部署和管理
  • 体系结构:Stack 位于 Docker 应用层级的最顶端。Stack 基于服务进行构建,而服务又基于容器
  • Stack与Compose区别:
    • Docker Stack不支持bulid指令,使用的镜像必须是构建好的,而Docker Compose可以使用,相对而言Docker Compose更适合开发使用
    • Docker Stack是集成在Docker引擎中的,直接使用命令即可,而Docker Compose 则是一个Python项目,使用Docker API规范操作容器
    • Docker Stack不支持version 2的yml文件,至少version 3以上。而Docker Compose 对version 2或3都可以处理
    • Docker Stack 更适合处理多服务也能处理单机服务,而Docker Compose 仅能处理单机服务,所以Docker Stack 可以把Docker Compose的工作都处理了,占据了主导地位。

命令

[root@node1 reg.mydocker.com]# docker stack --help
#格式
Usage:	docker stack [OPTIONS] COMMAND
#Docker stack任务管理
Manage Docker stacks
#选项
Options:
      --orchestrator string   Orchestrator to use (swarm|kubernetes|all)|选择协调器是swarm还是k8s或者2者
#子命令
Commands:
  deploy      Deploy a new stack or update an existing stack| 加载一个新的stack任务或者更新某一stack任务
  ls          List stacks|显示所有stack任务的列表
  ps          List the tasks in the stack|列出某一个stack的详细任务
  rm          Remove one or more stacks|删除一个或者多个stack任务
  services    List the services in the stack|列出某一个stack的所有服务

Docker stack 实践

实践环境

主机 IP 作用
node1 192.168.27.11 安装有Docker(18.09.6)、集群管理节点、可访问私有仓库
node2 192.168.27.12 安装有Docker(18.09.6)、集群工作节点、可访问私有仓库
node3 192.168.27.13 安装有Docker(18.09.6)、集群工作节点、可访问私有仓库
repository 192.168.27.12 搭建有harbor私有仓库,作为集群操作中的镜像使用仓库

实践过程

部署一个简单服务

官方compose文件模板:https://docs.docker.com/compose/compose-file/

  1. 制作一个yml文件,开启一个web服务,使用nginx容器,生成3个副本,自定义卷与网络
[root@node1 stack]# vim docker-stack.yml
version: '3'
services:
  web:
    image: library/nginx
    ports:
      - "80:80"
    volumes:
      - web-data:/usr/share/nginx/html
    networks:
      - vm_net
    deploy:
      replicas: 3
volumes:
  web-data:
networks:
  vm_net:
  1. stack 运行、查看、测试
[root@node1 stack]# docker stack deploy -c docker-stack.yml my_cluster
prots Additional property prots is not allowed
[root@node1 stack]# vim docker-stack.yml
[root@node1 stack]# docker stack deploy -c docker-stack.yml my_cluster
Creating network my_cluster_vm_net
Creating service my_cluster_web
[root@node1 stack]# docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
e0eo4mb2xnxa        my_cluster_web      replicated          3/3                 nginx:latest        *:80->80/tcp
[root@node1 stack]# docker service ps my_cluster_web
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE       ERROR               PORTS
uvq3ayobwam1        my_cluster_web.1    nginx:latest        node1               Running             Running 17 seconds ago
ar53a9v7o94t        my_cluster_web.2    nginx:latest        node3               Running             Running 16 seconds ago
ulji2jzh25qq        my_cluster_web.3    nginx:latest        node2               Running             Running 16 seconds ago
[root@node1 stack]# curl 192.168.27.11
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
   
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要搭建Docker Swarm集群,您需要遵循以下步骤: 1. 安装Docker:确保所有要加入集群的节点上都安装了Docker。您可以按照Docker官方文档的说明进行安装。 2. 初始化Swarm:选择一个节点作为Swarm管理节点,使用`docker swarm init`命令初始化Swarm。 ``` $ docker swarm init --advertise-addr <MANAGER-IP> ``` `<MANAGER-IP>`是管理节点的IP地址。 3. 加入节点:在其他节点上,使用`docker swarm join`命令将它们加入到Swarm集群。 ``` $ docker swarm join --token <TOKEN> <MANAGER-IP>:<PORT> ``` `<TOKEN>`是在管理节点初始化Swarm时生成的令牌,`<MANAGER-IP>`和`<PORT>`是管理节点的IP地址和端口。 4. 查看节点状态:在管理节点上使用`docker node ls`命令查看已加入集群的节点列表。 ``` $ docker node ls ``` 您应该能够看到所有已加入集群的节点。 5. 部署服务:使用Docker StackDocker Compose文件定义您要在集群中运行的服务和配置。然后,使用`docker stack deploy`命令将服务部署到Swarm集群。 ``` $ docker stack deploy -c <COMPOSE-FILE> <STACK-NAME> ``` `<COMPOSE-FILE>`是包含服务定义的Docker StackDocker Compose文件,`<STACK-NAME>`是您为该堆栈指定的名称。 6. 查看服务状态:使用`docker service ls`命令查看在集群中运行的服务列表。 ``` $ docker service ls ``` 您应该能够看到已部署的服务和它们的状态。 这样,您就成功地搭建了一个Docker Swarm集群,并在集群中部署了服务。您可以根据需要添加或删除节点,并管理集群中的服务。有关更详细的指南和选项,请参考Docker官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值