• 如何在docker swarm集群中部署一个service?


     

    如果你想知道,如何在docker swarm集群中部署一个service,那么你需要仔细的阅读下面的文章·····

     

    1、前提

     

    如果想要完成本次文章的内容,你首先需要一个swarm集群。可以参考下面的文章来搭建一个swarm集群:

     

    如何快速搭建一个docker swarm集群?

    2、部署service

     

    在创建完一个swarm集群后,现在需要将一个service部署到集群中。

     

    部署的方法,非常的容易:

     

    2.1、登录到manger节点

     

    注意:如果你还不知道swarm集群的哪个节点是manger节点,请再去看下swarm搭建文档:

     

    如何快速搭建一个docker swarm集群?

     

    2.2、执行部署命令

     

    运行以下的命令:

    docker service create --replicas 1 \
           --name helloworld \
           172.20.58.152/baseimage/alpine:latest \
           ping docker.com
    • docker service create命令用来创建service
    • --name 指明service的名字是helloworld
    • --replicas 1 表示期望运行一个实例
    • 172.20.58.152/baseimage/alpine:latest 表示要使用的镜像的名字
    • ping docker.com 表示容器要运行的命令

     

    创建service的过程:

     

     

    OK,创建完service之后······

     

    查看service的列表

    docker service ls

     

     

     

    查看服务的任务(task)的状态

     

    docker service ps helloworld

     

     

    通过上面的输出,你可以看到,当前这个service的容器在哪个节点上运行,当前的状态是什么,以及运行了多久。

     

    到这里就结束了吗?那如何删除一个service,查看一个serivce的日志?继续往下看······

     

    2.3、service管理

     

    查看一个service的日志

     

    docker service logs helloworld

     

     

    查看service的详细信息

     

    加上--pretty进行输出的格式化

    docker service inspect helloworld --pretty

     

    扩缩容service

     

    刚刚你看到的这个service只有一个容器副本,如果想要运行多个副本,该怎么搞?

     

    非常的简单。

     

    docker service scale helloworld=2
    • 使用scale命令
    • helloworld=2 [service名字=副本数]

     

    运行过程:

    [root@nccztsjb-node-07 ~]# docker service scale helloworld=2
    helloworld scaled to 2
    overall progress: 2 out of 2 tasks 
    1/2: running   [==================================================>] 
    2/2: running   [==================================================>] 
    verify: Service converged 
    [root@nccztsjb-node-07 ~]# 

    OK,查看service的状态

     

    [root@nccztsjb-node-07 ~]# docker service ls
    ID             NAME         MODE         REPLICAS   IMAGE                                   PORTS
    agak3k62twwc   helloworld   replicated   2/2        172.20.58.152/baseimage/alpine:latest   
    [root@nccztsjb-node-07 ~]# 
    [root@nccztsjb-node-07 ~]# docker service ps helloworld
    ID             NAME           IMAGE                                   NODE               DESIRED STATE   CURRENT STATE                ERROR     PORTS
    sokl6eufyioa   helloworld.1   172.20.58.152/baseimage/alpine:latest   nccztsjb-node-07   Running         Running 14 minutes ago                 
    cfwplmh4xauc   helloworld.2   172.20.58.152/baseimage/alpine:latest   nccztsjb-node-08   Running         Running about a minute ago             
    [root@nccztsjb-node-07 ~]# 

    可以看到,现在这个service运行了2个副本,在2个主机节点上。

     

    删除service

     

    删除一个service也非常的简单

     

    docker service rm helloworld

     

     

    OK,到这里的话,一个最基本的service的部署、管理已经实现了。

     

    那service映射的端口,如何访问,数据卷,这些更高级的主题,后面会逐步的向你透露·····

  • 相关阅读:
    Centos 下oracle 11g 安装部署及手动建库过程
    MongoDB 存储引擎Wiredtiger原理剖析
    有关RDS上只读实例延时分析-同适用于自建MySQL主从延时分析判断
    windows 下my.ini的配置优化
    什么是purge操作
    linux内核调优参考
    通过第三方镜像仓库代理下载镜像
    微积分拾遗——链式法则
    Java中的RASP实现
    机器学习是什么
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/16638433.html
Copyright © 2020-2023  润新知