• docker-swarm 命令


    管理配置文件

    docker config
    
    #docker  config  ls    查看配置文件
    
    #将已有配置文件添加到docker 配置文件中
    docker config create docker 配置文件名 本地配置文件
    
    
    

    管理swarm 节点

    docker node

    # 查看集群中的节点
    - docker node ls
     # 将manager角色降级为worker
    - docker node demote 主机名
    # 将worker角色升级为manager
     - docker node promote 主机名
    # 查看节点的详细信息,默认json格式
    - docker node inspect 主机名
    # 查看节点信息平铺格式
     - docker node inspect --pretty 主机名
    # 查看运行的一个或多个及节点任务数,默认当前节点
    - docker node ps
    # 从swarm中删除一个节点
    - docker node rm 主机名
     # 更新一个节点
     - docker node update
     # 对节点设置状态(“active”正常|“pause”暂停|“drain”排除自身work任务)
     - docker node update --availability
    
    

    管理敏感数据

    docker secret

    # 服务栈,栈的形式,一般作为编排使用,格式与docker compose相同。
    docker stack
    # 通过.yml文件指令部署
    - docker stack deploy -c 文件名.yml 编排服务名
    # 查看编排服务
    - docker stack ls
    
    
    build
    cgroup_parent
    container_name
    devices
    dns
    dns_search
    tmpfs
    external_links
    links
    network_mode
    security_opt
    stop_signal
    sysctls
    userns_mode
    
    docker stack 不支持使用参数
    
    
    

    作为集群的管理

     # 初始化一个swarm
    - docker swarm init
     # 指定初始化ip地址节点
    - docker swarm init --advertise-addr 管理端IP地址
    # 去除本地之外的所有管理器身份
    - docker swarm init --force-new-cluster
     # 将节点加入swarm集群,两种加入模式manager与worker
     - docker swarm join
    # 工作节点加入管理节点需要通过join-token认证
     - docker swarm join-token
     # 重新获取docker获取初始化命令
     - docker swarm join-token worker
    # 离开swarm
     - docker swarm leave
    # 对swarm集群更新配置
    - docker swarm update
    

    服务管理

     # 创建一个服务
     docker service create
    创建的副本数
     - docker service create --replicas 副本数
    # 指定容器名称
    - docker service create --name 名字
     # 每次容器与容器之间的更新时间间隔。
    - docker service create --update-delay s秒
     # 更新时同时并行更新数量,默认1
     - docker service create --update-parallelism 个数
     # 任务容器更新失败时的模式,(“pause”停止|”continue“继续),默认pause。
     docker service create --update-failure-action 类型
    # 每次容器与容器之间的回滚时间间隔。
    - docker service create --rollback-monitor 20s
    # 回滚故障率如果小于百分比允许运行
    - docker service create --rollback-max-failure-ratio .数值(列“.2”为%20)
    # 添加网络
    - docker service create --network 网络名
    # 创建volume类型数据卷
     - docker service create --mount type=volume,src=volume名称,dst=容器目录
    # 创建bind读写目录挂载
    - docker service create --mount type=bind,src=宿主目录,dst=容器目录
     # 创建bind只读目录挂载
      - docker service create --mount type=bind,src=宿主目录,dst=容器目录,readonly
    # 创建dnsrr负载均衡模式
     - docker service create --endpoint-mode dnsrr 服务名
     # 创建docker配置文件到容器本地目录
     - docker service create --config source=docker配置文件,target=配置文件路径
    # 创建添加端口
    - docker service create --publish 暴露端口:容器端口 服务名
    # 查看服务详细信息,默认json格式
    - docker service inspect
     # 查看服务信息平铺形式
    - docker service inspect --pretty 服务名
    # 查看服务内输出
    - docker service logs
    # 列出服务
    - docker service ls
    # 列出服务任务信息
    - docker service ps    
     # 查看服务启动信息
    - docker service ps 服务名
    # 过滤只运行的任务信息
    - docker service ps -f "desired-state=running" 服务名
     # 删除服务
    - docker service rm
    # 缩容扩容服务
    - docker service scale
     # 扩展服务容器副本数量
    - docker service scale 服务名=副本数
    # 更新服务相关配置
     - docker service update
     # 容器加入指令
    - docker service update --args “指令” 服务名
    # 更新服务容器版本
    - docker service update --image 更新版本 服务名         
    # 回滚服务容器版本
     - docker service update --rollback 回滚服务名
    # 添加容器网络
    docker service update --network-add 网络名 服务名
     删除容器网络
    - docker service update --network-rm 网络名 服务名
      # 服务添加暴露端口
     - docker service update --publish-add 暴露端口:容器端口 服务名
     # 移除暴露端口
     - docker service update --publish-rm 暴露端口:容器端口 服务名
    # 修改负载均衡模式为dnsrr
    - docker service update --endpoint-mode dnsrr 服务名
     # 添加新的配置文件到容器内
    - docker service update --config-add 配置文件名称,target=/../容器内配置文件名 服务名
    
    

    更新配置文件

    # 1创建配置文件
    docker config create nginx2_config nginx2.conf 
    # 2删除旧配置文件
    docker service update --config-rm ce_nginx_config 服务名
    # 3添加新配置文件到服务
    ocker service update --config-add src=nginx2_config,target=/etc/nginx/nginx.conf ce_nginx
    
    使用方法
    
    # 删除配置文件
    - docker service update --config-rm 配置文件名称 服务名
     # 强制重启服务
    - docker service update --force 服务名
    
    

    示例

    创建服务
    docker service create --replicas 1 --name hello busybox
    
    查看服务
     docker service ls
    
    服务并没有启动
    在hello服务中busybox只是一个基础镜像,并没有一个持续运行的任务,在hello服务中busybox只是一个基础镜像,并没有一个持续运行的任务
    更新:
    docker service update --args "ping www.baidu.com" hello
    
    过滤不正常的状态
    docker service ps -f "desired-state=running" hello
    
    服务扩容(缩容)
    docker service scale hello=4
     
    ##工作节点排除manager,manager只作为管理节点
    
    docker node update --availability drain manager
    
    排除manager 后,其上的服务会转移至其他节点
    
    
    

    滚动更新服务

    升级服务的镜像版本

    docker service create 
    > --replicas 3 
    > --name redis 
    > --update-delay 10s 
    > redis:3.0.6
    
    
    # update-delay 10s :每个容器依次更新,间隔10s
    滚动更新:
    docker service update --image redis:3.0.7 redis
    
    --image 指定版本
    
    查看更新记录   docker  service   ps redis 
    
    查看配置信息:
    dockers service inspect  --pretty  redis 
    
    

    服务更新和回滚

    1,设置策略

    [root@manager ~]# docker service create 
    --name my-web 
    --replicas 10 
    --update-delay 10s 
    --update-parallelism 2 
    --update-failure-action continue 
    --rollback-parallelism 2 
    --rollback-monitor 20s 
    --rollback-max-failure-ratio 0.2 
    nginx:1.12.1
     
     
    # --update-parallelism 2  : 每次允许两个服务一起更新
     
    #--update-failure-action continue : 更新失败后的动作是继续
     
    # --rollback-parallelism 2  :  回滚时允许两个一起
     
    # --rollback-monitor 20s  :回滚监控时间20s
     
    # --rollback-max-failure-ratio 0.2 : 回滚失败率20%
    
    
    如果执行后查看状态不是设置的,可以在update一下,将服务状态设置为自己想要的
    
    docker service update --rollback-monitor 20s  my-web
     
    docker service update --rollback-max-failure-ratio 0.2 my-web
     
    # 有两个地方设置数值没有成功,手动设置
    
    查看状态
    docker service inspect  --pretty  my-web 
    docker service  ps  name
    
    

    2,服务更新

    docker service update --image nginx:1.13.5 my-web
    
    docker service  ps  name
    
    

    3,回滚 失败会回滚

    docker service update --rollback my-web
    
    
  • 相关阅读:
    tmux commands
    智能指针类HasPtr
    关于Vector中存放指针的问题
    面向对象的理解
    关系模型 超键 候选键 主键
    数据库的三个范式
    static struct QMetaObject const QwtPlot::staticMetaObjec
    static作用(修饰函数、局部变量、全局变量)
    C++全局变量之extern和static
    QTabWidget 使用小记
  • 原文地址:https://www.cnblogs.com/g2thend/p/11722966.html
Copyright © 2020-2023  润新知