利用 docker compose.yml文件 实现负载均衡

docker-compose 部署MongoDB4.0 部署replica set(副本集)集群 多服务器 docker以及docker-compose安装请点击 准备三台服务器 192.168.0.11192.168.0.12192.168.0.13 生成keyFile MongoDB使用keyfile认证,副本集中的每个mongod实例使用keyfile内容作为认证其他成员的共享密码。mongod实例只有拥有正确的keyfile才可以加入副本集。 keyFile的内容必须是6到1024个字符的长度,且副本集所有成员的keyFile内容必须相同。 有一点要注意是的:在UNIX系统中,k... 阅读详情

docker中的服务

我们将扩展应用并启用负载均衡。在分布式应用中,应用的不同部分称为“服务”。例如,假设有一个视频共享网站,它可能提供用于在数据库中存储应用程序数据的服务、用于在用户上传一些内容后在后台进行视频转码的服务、用于前端的服务等。

服务实际上是“生产中的容器”。一项服务仅运行一个镜像,但它会编制镜像的运行方式 - 它应使用的端口、容器的多少个从节点应运行才能使服务的容量满足其需求等。扩展服务将更改运行该软件的容器实例数,并将多个计算资源分配给进程中的服务。

幸运的是,很容易使用 Docker 平台定义、运行和扩展服务 – 只需编写一个 docker-compose.yml 文件即可。

docker-compose.yml文件

docker-compose.yml是一个YAML文件,用于定义Docker容器在生产中的行为方式,编排应用以及其中服务的方式。

以下为docker-compose.yml文件的一个样例,通过将username/repository:tag替换为自己的镜像详细信息来更新此文件

version: "3"
services: 
  web:
    # 将 username/repo:tag 替换为您的名称和镜像详细信息
    # image: waldenz/imagesample:v1
    image: username/repository:tag
    deploy:
      replicas: 5
      resources: 
        limits:
          cpus: "0.1"
          #memory:50M
      restart_policy:
        condition: on-failure
    ports:
      - "1002:5003"
    networks:
      - webnet
networks:
  webnet:

yml文件解析:

1. 从waldenz/imagesample:v1镜像库中拉取镜像;

2. 将该镜像的五个实例作为服务web运行,并将每个实例限制为最多10%的cpu以及50M RAM;

3. restart_policy: 重启策略, 如果某个容器发生故障,立即重启容器;

4. 将主机上的1002端口映射到web容器中的5003;

5. 指示web容器通过负载均衡的网络 webnet 共享端口1002;

6. 使用默认设置定义 webnet网络(此为负载均衡的overlay网络)

运行新的负载均衡的应用

首先需要运行一下命令,才可以使用 docker stack deploy 

docker swarm init

为应用指定一个名称。例子中取名为 myapp0416

docker stack deploy -c docker-compose.yml myappname

 查看启动的该应用下的所有容器的列表,

docker stack ps myappname

您可以多次在一行中运行 curl http://localhost:1002,也可以在浏览器中转至该 URL 并多次点击“刷新”。无论采用哪种方式,您都将看到容器 ID 更改,从而说明负载均衡;借助每项请求,将以循环方式选择五个从节点之一做出响应。 

扩展应用

更改docker-compose.yml中的replicas值,保存更改并重新运行 docker stack deploy 命令来扩展应用。如下图

docker将执行原地更新,而无需先清除技术栈或终止任何容器。将之前文件中 replicas 由5改为7,重新运行 docker stack deploy   可以发现节点67是刚启动的。

另一种方法扩展应用中的服务

水平扩展副本,用 docker service scale命令。

举例: 服务名为myapp_web,即myappname应用下的web服务,扩展为5个副本,相当于修改yml文件中的replicas个数。

docker service scale myappname_web=5

清除应用和swarm

docker stack rm myappname

相关命令

docker stack ls                    #列出docker主机上所有正在运行的应用

docker stack deploy -c  <composefile> <appname> #运行指定的compose文件,启动应用appname

docker stack services <appname>  #列出与应用关联的服务

docker stack ps <appname>      #列出与应用关联的正在运行的容器

docker stack rm <appname>     #清除应用

用Docker Compose实现负载均衡【入门篇】 docker compose实现的负载均衡 阅读详情

相关推荐

Docker容器中基于compose+haproxy搭建负载均衡

一,基本知识 1,Docker Compose (1)Docker Compose 将所管理的容器分为三层,工程(project),服务(service)以及容器 (contaienr)。 (2)Docker Compose 运行的目录下的所有文件(docker-compose.yml, extends 文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服...

qwqq233的博客 1568

docker-compose的一些基础知识 —— 筑梦之路

通过配置来控制创建服务容器的数量,但是并非所有场景都适用,比如Hadoop的有些组件是不适用的,像要求设置主机名和容器名的时候,就不太适用通过这个参数来调整容器的数量。

筑梦之路 930

Docker-compose 部署分布式爬虫小结

Docker-compose command 参数用法 Reference: https://blog.csdn.net/whatday/article/details/108863389 https://juejin.cn/post/6844904038627033095#heading-10 方式一:/bin/bash -c 字符串方式 version: '2' services: prj1: build: context: . dockerfile: Dockerf

goldenpotatos的博客 343

Docker Compose使用详记-小白笔记

1 Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 Compose 使用的三个步骤: 使用 Dockerfile 定义应用程序的环境。 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。 最后,执行 docker-compose ...

码灵的博客 5570

在VSCode中使用LaTex+(grammarly语法检测,chatgpt翻译,Sumatra PDF 轻量级pdf阅读器)

整个文章分为以下几个内容,打 * 的是必须要安装的。

u011895157的博客 2万+

翻倍密码系统主图指标-行情买卖以及持股-翻倍密码买点-获利了结,通达信炒股软件指标公式

华森制药,上图案例走势,低位出现“开始潜伏”信号,进场红色K线持股待涨,进入“翻倍密码买点”,开启紫色K线的持续上涨,目前也达到了翻倍行情,还没出现“获利了结”的出场信号。这套操盘系统,即便出现信号没走出翻倍行情,也都是可以全身而退,获利出局,或者微微止损出场,并不代表每一个波段都能翻倍,但是走翻倍行情,你按照信号参与或持仓是不会错过的。用这个操盘系统操作,你也不需要天天的盘中看盘,不需要担心盘中的震荡,只要趋势不变,哪怕是偶尔出现跌停,也不影响行情的继续上涨,这都是上涨途中的正常调整。

weixin_69760830的博客 3680

基于docker-compose搭建mongo的replicaSet服务

基于docker-compose搭建mongo的replicaSet服务 1.备份和恢复 备份 mongodump -h 127.0.0.1:27017 -u root -p 123456 -o ./dump 恢复 mongorestore -h 127.0.0.1:27017 -u root -p 123456 ./dump 注意:多replicaSet需要在Primary节点恢复 2.docker-compose示例 version: '3.3' services: mongodb1: i

爱敲代码的洋葱 3159

【嵌入式原理系列-第七篇】ld脚本实战:从零构建MCU内存布局

本文是一篇针对嵌入式开发者的实战指南,详细讲解了如何从零开始为MCU编写ld链接器脚本以构建自定义内存布局。文章以STM32F103C8T6为例,深入剖析了MEMORY和SECTIONS指令的用法,并提供了OTA分区、非易失数据存储等高级定制案例,帮助开发者解决实际工程中的Flash与RAM管理难题,实现对程序运行的深度掌控。

weixin_29271263的博客 249

docker-compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务 [root@linux-node3 ~]# yum install pip* [root@linux-node3 ~]# pip install docker-compose vim haproxy.cfg global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 defaults

zhao34yan1的博客 243

基于结构的虚拟筛选模型 gnina 从源码编译

所需要的软件安装包: 安装 CUDA 装的时候看着点,第二个要你装驱动的选择,回答N,不装。 sudo sh cuda_10.0.130_410.48_linux.run sudo vim ~/.bashrc 在 ~/.bashrc 文件最后加上 export PATH=/usr/bin:/usr/local/cuda-10.0/bin${PATH} export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:${LD_LIBRARY_PATH} source ~

周迪新的博客 3188

SQLite → PostgreSQL 迁移脚本与踩坑清单

本文提供了SQLite迁移到PostgreSQL的两种可靠路径:首选使用pgloader工具自动转换schema和数据,支持类型映射和并行复制;备选方案通过sqlite3导出CSV再用PostgreSQL的COPY命令导入,适合需要自定义清洗的场景。重点介绍了数据类型映射规则、迁移步骤、校验方法和常见问题,包括自增主键、布尔值、时间类型等关键差异处理。迁移后需进行行数核对、哈希抽样等校验,并给出了性能优化建议。最后强调迁移不仅是数据转移,更需要同步升级数据模型和索引策略,根据业务场景选择合适的数据库方案。

aifs2025的博客 1886

docker nginx 配置反向代理和负载均衡

1. 获取及配置nginx     如果需要全站通过docker部署,那么nginx或许是不可或缺的。通过配置nginx,可以迅速实现负载均衡和反向代理服务。值得一提的是,docker官网恰好也有nginx镜像。通过以下命令获取: $ docker pull nginx:latest   nginx镜像的配置和正常使用时是一样的,一般都是在/etc/nginx/conf.d目录下建立自己的f...

Kiloveyousmile的博客 3962

Unity URP半透明物体深度排序优化:解决自交叠渲染瑕疵

本文深入探讨了Unity URP管线中半透明物体深度排序的优化方法,重点解决自交叠区域的渲染瑕疵问题。通过双通道渲染、深度预写入、多通道渲染等核心技术,结合实战案例和性能数据,帮助开发者实现高质量的透明效果渲染。

weixin_30879169的博客 419

docker-compose发布nginx和tomcat,实现nginx均衡tomcat,访问nginx即访问tomcat

一、docker-compose概念: 命令“docker run”用来创建和启动一个容器,即管理单个容器,如果有多个相关联的应用容器,则需要依次分别部署。docker-compose可以用来创建启动一组相关联应用容器。它允许用户在一个模版(YAML格式文件,默认配置文件为:docker-compose.yml)中定义好一组相关联的应用容器,。一般我们把这一组应用容器称为一个项目(Project)。通过docker-compose命令来完成这个Project。 因此,docker-compose会把所管

阿蔡的博客 3060

Python爬虫实战:爬取携程旅游平台数据,我拆解了动态反爬+Cookie续命(附完整可运行代码)

反爬类型表现形式应对思路sign参数返回403/空数据逆向JS还原加密逻辑Cookie时效登录后1小时Cookie失效定时刷新Cookie/保存登录态行为检测爬取过快触发验证码模拟真人延时/随机点击IP封禁单IP爬取超50条数据被封付费代理池/降低请求频率爬取携程旅游平台数据的核心,不是“简单的HTTP请求”,而是“理解平台的反爬逻辑并合规适配”——从sign参数破解到Cookie维护,再到行为模拟,每一步都是对HTTP协议、前端加密、用户行为的深度理解。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1713

YOLOv10 的损失函数解析

YOLOv10 在 YOLO 系列的演进中进一步优化了任务解耦与动态平衡策略,通过 ​多模态损失融合、自适应样本分配 和 ​轻量化设计,显著提升了检测精度与推理效率。

浩瀚之水的专栏 1378

Docker入门系列(三):让你的应用变为可扩展的服务

准备工作 安装docker,版本最低1.13 准备 Docker Compose,Docker for Mac 以及 Docker for Windows 都已经预装了compose。linux系统需要自己安装,官方安装教程。 了解docker安装启动 了解构建第一个docker应用 确保在上一节创建的friendlyhello已经发布到registry,一会儿会使用到此镜像 介绍在这一节中,我们将

pingpangbing0902的专栏 1452

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Dapr牵手.NET学习笔记:用docker-compose部署服务

上一篇聊到用两个物理机(一个win,一个mac)来部署dapr和服务 ,实现order调用pay的负载均衡。本篇说一下在windows上的docker部署这三个服务,达到与上一篇的效果。三...

dotNET跨平台 1310

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

docker-compose 案例

官网示例: 安装wordpress version: "2"       services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD:...

weixin_30651273的博客 232

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

docker容器编排工具 docker compose

1.docker compose 是一个用于定义和运行多容器docker应用程序工具定义服务:使用yaml格式的配置文件来定义一组相关的容器服务,每个容器可以指定镜像、端口映射、环境变量、存储卷等参数。

2201_75920541的博客 1658

使用docker-compose和nginx来部署node项目

使用docker-compose和nginx来部署node项目 2、文件介绍说明文件主要写配置的主要是的配置和都是后端项目 文件是静态文件1、关于文件的代码 2、关于的文件 3、关于文件内容 4、运行命令启动项目 三、关于使用来做负载均衡 1、修改的配置 2、启动...

水痕 1512

[docker swarm] 从单容器走向负载均衡部署

背景     之前写过<<docker-compose真香>> 和《docker-compose、docker stack前世今生》两篇博客, 回顾一下思路: ① docker-compose是docker引擎之上的容器编排工具,Python语言编写; docker stack 是docker引擎原生支持的容器编排技术(Go语言) ② 两者都支持最近docker-co...

kkkkk0826的专栏 409

docker----compose

一、先决条件首先,阅读并完成前两张docker容器及基础知识与安装二、介绍扩展应用程序并启用负载平衡。要做到这一点,我们必须在分布式应用程序的层次结构中提升一级:服务。关于服务在分布式应用程序中,应用程序的不同部分称为“服务”。例如,如果您想象一个视频共享站点,它可能包括一个用于将应用程序数据存储在数据库中的服务,一个用于在后台进行视频转码的服务。用户上传内容,前端服务等...

weixin_34228662的博客 99

利用容器编排完成haproxy和nginx负载均衡架构实施

摘要:本文演示了使用Docker Compose搭建Nginx+Haproxy负载均衡架构的过程。通过定义3个服务(web1、web2和haproxy)和2个网络(mynet1/mynet2),实现请求分发和高可用。关键配置包括:Nginx容器内部暴露80端口并通过数据卷持久化网页内容;Haproxy容器映射宿主机80端口,采用轮询策略分发请求;使用restart:always确保服务自动恢复。测试结果表明,通过curl访问宿主机IP可轮询获得web1/web2的不同响应,成功构建了基础负载均衡架构。

m0_75254642的博客 610

Docker Registry && Docker Compose

一、docker仓库 [root@foundation50 docker]# docker images registry REPOSITORY TAG IMAGE ID CREATED SIZE registry latest bca04f698ba8...

JaneNancy的博客 1320

Docker-Compose 一键部署Ningx+.Net Core+Redis集群

在看该文章前,你需要对Docker有所了解。 1、创建WebApp应用程序  我使用的是.Net Core 1.0.1版本,创建一个MVC应用程序,并添加对Redis的引用。因为这些很基础,也很简单,这里就不详细说明了,特别提一下有关多站点会话保持问题,这里介绍两种方式,一种方式就是使用我博客里所说的方法 http://www.cnblogs.com/anech/p/6873604.html,

dotNET跨平台 1094
上一篇: mac/linux ssh免密登录
下一篇: docker 容器 自启动策略 restart policy
Waldenz
博客等级 码龄17年 219粉丝 229原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值