美文网首页
docker基础:服务部署到swarm集群(六)

docker基础:服务部署到swarm集群(六)

作者: 简陌刀丶阿吉 | 来源:发表于2017-06-16 16:57 被阅读0次

            上一篇文章说道,我们如何搭建集群,这时有人就要问了,集群搭建起来,我们要做什么用呢。在这篇文章中,主要给大家讲解一下,我们搭建集群后做的一些操作。比如说集群中怎么创建服务?用那种方式创建服务?以及创建服务后一些相关的命令。下面开始进行服务的创建。

            1、服务是什么?

            服务就是docker中能够支持一些功能或者是任务的操作的容器,这些容器中的软件就可以看作是一个服务。

            2、创建服务的方式?

             创建一个服务有三种方式,我们以tomcat为例。

              1)第一种用docker create 为例: docker container create --name tomcat -p 8088:8080 tomcat:latest

                    这种方式创建出来的容器:每次只能在一台机器上创建一个容器。这种适合单机但容器操作。

              2)第二种用docker-compose运行compose文件:docker-compose up

             compose文件:

                                  version: '3'

                                  services:

                                      web:

                                       build: .

                                       ports:

                                           - "5001:5000"

                                      volumes:

                                           - .:/code

                                      redis:

                                          image: "redis:alpine"

                        这种方式是可以在一个机器上创建多容器,不能通过集群管理机指定节点进行部署。这种适合单机多服务操作。

                  3)第三种方式用stack运行compose文件,在集群中运行镜像:docker stack deploy docker-compose.yml

                        docker-compose.yml内容如下:

                            #version是指版本,现在用的是3

                            version: "3"

                            #services是指有哪些服务

                            services:

                                web:

                                    # replace username/repo:tag with your name and image details

                                    image: tomcat:latest

                             deploy:

                                 placement:

                                    constraints:

                                        - node.hostname == node166

                               #启动5个节点

                               replicas: 5

                             #运行该映像的五个实例作为调用的服务web,限制每个实例使用,最多使用10%的CPU(跨所有内核)和50MB RAM。

                             #resources:

                                  #limits:

                                      #cpus: "0.1"

                                      #memory: 50M

                          #运行失败从新启动

                          restart_policy:

                               condition: on-failure

                         #映射端口

                         ports:

                            - "8088:8080"

                         #指示web容器通过称为负载平衡网络共享端口80webnet

                            networks:

                                 - webnet

                         #webnet使用默认设置(这是一个负载平衡的重叠网络)来定义网络。

                            networks:

                               webnet:

                     这种方式可以在一个集群内运行多个服务到指定的节点。这些节点之间可以进行正常通讯。这种的适合做集群的操作。 

                    本次使用第三种方式进行服务的部署。

            3、服务的部署

                 1.首先要搭建好集群。这个就不再说了。

                 *在centos中创建一个文件夹:mkdir /root/swarmtest

                 *创建一个compose文件:vi docker-compose.yml

                 *在文件中填写下面的内容:

                       version: "3"

                       services:

                           web:

                                image: tomcat:latest

                                deploy:

                                     placement:

                                          constraints:

                                          - node.hostname == node166

                                     replicas: 5

                                     restart_policy:

                                           condition: on-failure

                                     ports:

                                         - "8088:8080"

                                     networks:

                                           - webnet

                               networks:

                                    webnet:

               *保存后,执行docker stack deploy -c docker-compose.yml  tomcattest

    执行的顺序是,先下载镜像,然后根据下载的镜像进行容器的创建,创建容器的时候,会根据指定的属性,安装到指定节点,设置属性信息。

    启动服务之后查看的状态 节点运行状态

    这样就在node166这台节点机器上运行了5个相同的服务。

    只要是这个集群的ip都可以访问:192.168.1.166:8088,可以成功的访问到容器中

    相关文章

      网友评论

          本文标题:docker基础:服务部署到swarm集群(六)

          本文链接:https://www.haomeiwen.com/subject/kculqxtx.html