千家信息网

Docker如何实现分布式应用功能

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本文小编为大家详细介绍"Docker如何实现分布式应用功能",内容详细,步骤清晰,细节处理妥当,希望这篇"Docker如何实现分布式应用功能"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
千家信息网最后更新 2025年02月23日Docker如何实现分布式应用功能

本文小编为大家详细介绍"Docker如何实现分布式应用功能",内容详细,步骤清晰,细节处理妥当,希望这篇"Docker如何实现分布式应用功能"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

创建docker-compose.yml文件

创建docker-compose.yml文件,并放在与dockerfile相同的目录下,docker-compose.yml文件是一个yaml文件,它定义了docker容器在生产中的行为方式。

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:   - webnetnetworks: webnet:

这个docker-compose.yml文件告诉docker执行以下操作:

- 从注册表中取出我们在《docker简单安装与应用入门教程》中上传的镜像。
- 运行该镜像的5个实例作为一个名为web的服务,限制每个服务器最多使用10%的cpu(跨所有核心)和50mb的ram。
- 如果一个失败,立即重新启动容器。
- 将主机上的端口80映射到web的端口80。
- 指示web容器通过称为webnet的负载平衡网络共享端口80(在内部,容器本身将在临时端口上发布到web的端口80)。
- 使用默认设置(这是一个负载平衡覆盖网络)定义webnet网络。

运行新的负载平衡应用程序

在使用docker stack deploy命令之前,先运行以下命令。

$ docker swarm init

打开一个命令行终端,确保仍然在新目录的顶层,现在来运行它,必须给应用程序一个名称,在这里它被设置为getstartedlab

$ 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

可以连续多次运行curl -4 http://localhost,或者在浏览器中转到该url并点击几次刷新。

无论哪种方式,都能看到容器id的更改,演示负载平衡。在每个请求中,以循环方式选择5个任务中的一个来响应,容器id将匹配您以前的docker container ls -q命令的输出。

缩放应用程序

可以通过更改docker-compose.yml中的replicas值,保存更改并重新运行docker stack deploy命令来扩展应用程序。

$ docker stack deploy -c docker-compose.yml getstartedlab

docker会做一个更新操作,不需要先删除堆栈或杀死任何容器。现在,重新运行docker container ls -q来查看重新配置的已部署实例。明显因为扩大了replicas值,即副本,有了更多的任务和容器。

接下来,结束应用程序和集群,使用docker stack rm把应用程序结束,使用docker swarm leave把集群结束。

$ docker stack rm getstartedlab$ docker swarm leave --force

读到这里,这篇"Docker如何实现分布式应用功能"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

应用 容器 服务 运行 应用程序 程序 命令 任务 端口 文件 镜像 名称 分布式 功能 实例 文章 方式 网络 相同 主机 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 安全牛 网络安全企业 如何组态PC为NTP服务器 三级网络技术的要求 通用商品数据库设计 数据库参照完整性的含义 如何查询数据库修改记录 广州飞度网络技术有限公司 laravel数据库查询 dw怎么展示数据库中的对象 爱鑫易购网络技术有限公司 软件开发开发流程图 初学者软件开发工作室 一梦江湖新区服务器等级开放规律 软件开发平台需要是正版的吗 软件开发工程师申请条件 可以把服务器分成虚拟主机吗 手机如何进行数据库管理 我的世界2g服务器 税务系统网络安全合规 sql游标循环修改数据库 湛江市网络安全问卷答案 四川大学网络安全推免 网络技术就是拉网线吗 网络安全计算机病毒实验报告 龙旭网络技术有限公司总部 两台电脑远程传数据库 湖北雷聚网络技术有限公司 温州市鹿城区蔷斯网络技术工作室 电信网络技术二面内容 安仁电脑软件开发薪资
0