在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文详细讲述了Docker实现分布式应用功能。分享给大家供大家参考,具体如下: 这里接着前面一篇《Docker简单安装与应用入门教程》后面扩展应用程序。实现负载平衡,要做到这一点,必须在分布式应用程序的层次结构中的服务层实现。 在分布式应用程序中,应用程序的不同部分被称为“服务”。例如,一个视频共享站点,它可能包括一个用于将应用程序数据存储在数据库中的服务、后面的视频转码服务、用户上传东西、为前端服务等等。 服务实际上只是“生产中的容器”,服务只运行一个镜像,但它编码镜像运行的方式,例如,应该使用哪个端口,容器应该运行多少个副本,以便服务具有所需的容量等。缩放服务会更改运行该软件的容器实例的数量,从而为流程中的服务分配更多的计算资源。幸运的是,使用Docker平台定义、运行和扩展服务非常简单,只需编写一个docker-compose.yml文件即可。 创建docker-compose.yml文件 创建docker-compose.yml文件,并放在与 version: "3" services: web: # 用你的用户名和镜像细节替换username/repo:tag命令 image: username/repo:tag deploy: replicas: 5 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "80:80" networks: - webnet networks: webnet: 这个docker-compose.yml文件告诉Docker执行以下操作:
运行新的负载平衡应用程序 在使用 $ docker swarm init 打开一个命令行终端,确保仍然在新目录的顶层,现在来运行它,必须给应用程序一个名称,在这里它被设置为 $ docker stack deploy -c docker-compose.yml getstartedlab 单个服务堆栈在一台主机上运行了5个部署镜像的容器实例,在应用程序中获取一项服务的服务ID。 $ docker service ls 您将看到Web服务的输出,并以您的应用程序名称作为前缀。如果您将其命名为与此示例中所示的相同,则名称将为getstartedlab_web。还列出了服务ID以及副本数量,镜像名称和暴露端口。 在服务中运行的单个容器称为任务。任务会被赋予唯一的数字增加的ID,最多可以运行在docker-compose.yml中定义的replicas数量。使用以下命令可以列出服务中的任务。 $ docker service ps getstartedlab_web 如果只列出系统上的所有容器,也会显示任务,但不会被服务过滤。 $ docker container ls -q 可以连续多次运行 无论哪种方式,都能看到容器ID的更改,演示负载平衡。在每个请求中,以循环方式选择5个任务中的一个来响应,容器ID将匹配您以前的 缩放应用程序 可以通过更改docker-compose.yml中的replicas值,保存更改并重新运行 $ docker stack deploy -c docker-compose.yml getstartedlab Docker会做一个更新操作,不需要先删除堆栈或杀死任何容器。现在,重新运行 接下来,结束应用程序和集群,使用 $ docker stack rm getstartedlab $ docker swarm leave --force 希望本文所述对大家docker容器的使用有所帮助 |
2022-08-17
2022-11-06
2022-08-15
2022-08-17
2022-08-16
请发表评论