上一篇文章说道,我们如何搭建集群,这时有人就要问了,集群搭建起来,我们要做什么用呢。在这篇文章中,主要给大家讲解一下,我们搭建集群后做的一些操作。比如说集群中怎么创建服务?用那种方式创建服务?以及创建服务后一些相关的命令。下面开始进行服务的创建。
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,可以成功的访问到容器中
网友评论