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

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

        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

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


docker基础:服务部署到swarm集群(六)_第1张图片
启动服务之后查看的状态


节点运行状态

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

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

你可能感兴趣的:(docker基础:服务部署到swarm集群(六))