本地docker部署中间件和应用

Docker Desktop搭建

安装完成之后使用docker下载镜像,报以下错误:

解决办法:

Docker Engine配置能访问的镜像地址:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://docker.1panel.live",
    "https://cr.console.aliyun.com",
    "https://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.ccs.tencentyun.com"
  ]
}

Mysql部署

拉取镜像:

docker pull mysql:8.4

启动并运行:

docker run --name mysql-8.4 -p 3306:3306 -v D:/data/dockerData/mysql8/data:/var/lib/mysql -v D:/data/dockerData/mysql8/logs:/var/log/mysql -v D:/data/dockerData/mysql8/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --restart=always -d mysql:8.4 

中间件Apollo部署

 拉取并运行镜像:

docker pull apolloconfig/apollo-configservice:latest

docker pull apolloconfig/apollo-adminservice:latest

docker pull apolloconfig/apollo-portal:latest

其中:

  • apollo-adminservice:Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)
  • apollo-configservice:Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端
  • apollo-portal:Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Portal侧会做load balance、错误重试 
docker run -p 8082:8080 -e SPRING_DATASOURCE_URL="jdbc:mysql://172.17.0.2:3306/Apolloconfigdb?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 -d -v D:/data/apollo/logs:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice

docker run -p 8091:8090 -e SPRING_DATASOURCE_URL="jdbc:mysql://172.17.0.2:3306/Apolloconfigdb?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 -d -v D:/data/apollo/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice

docker run -p 8071:8070 -e SPRING_DATASOURCE_URL="jdbc:mysql://172.17.0.2:3306/Apolloportaldb?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 -e APOLLO_PORTAL_ENVS=pro -e PRO_META=http://172.17.0.1:8082 -d -v D:/data/apollo/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal

 其中:

  • 172.17.0.2:3306 为mysql容器IP和端口,如下图所示:

     

  • 172.17.0.1:8082 为configservice容器IP地址和端口号,如下图所示:

导入Apollo SQL脚本

创建ApolloPortalDB 并导入如下sql:

https://github.com/ctripcorp/apollo/blob/master/scripts/db/migration/portaldb/V1.0.0__initialization.sql

创建ApolloConfigDBDev 并导入如下sql:

https://github.com/ctripcorp/apollo/blob/master/scripts/db/migration/configdb/V1.0.0__initialization.sql

 需要我们改一下数据库的Eureka服务连接地址Url,需要连接上configservice的配置中心,不然启动会报错。在ApolloConfigDB数据库ServerConfig表的eureka.service.url的value的值进行修改:

配置Meta Servers地址,也就是configservice的连接地址,在ApolloPortalDB数据库的ServerConfig表的apollo.portal.meta.servers的value中进行配置。和上面的DEV_META一致:

 使用Spring boot连接配置中心

1. 引入依赖:

 <!--携程开源框架 配置中心-->
        <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>2.2.0</version>
        </dependency>

2. 配置文件 application.yml修改配置:

apollo:
  meta: http://127.0.0.1:8082  #configService地址
  bootstrap:
    enabled: true   #springboot在启动阶段就会加载
    namespaces: application
    eagerLoad:
      enabled: true  #将Apollo配置加载提到初始化日志系统之前

3. 在启动的时候,启动类需要加上@EnableApolloConfig注解开启配置中心 

4. IDEA配置环境(指定config service地址):否则会报配置中心连接超时错误

WARN 12344 --- [ngPollService-1] c.c.f.a.i.RemoteConfigLongPollService    : Long polling failed, will retry in 1 seconds. appId: spring-cloud-config-dev, cluster: default, namespaces: spring-cloud-management, 
long polling url: http://172.17.0.3:8080/notifications/v2?cluster=default&appId=spring-cloud-config-dev&ip=192.168.1.108&notifications=%5B%7B%22namespaceName%22%3A%22spring-cloud-management%22%2C%22notificationId%22%3A-1%7D%5D,
reason: Could not complete get operation [Cause: connect timed out]

中间件Nginx部署

 拉取镜像并运行

1. 拉取镜像:

docker pull nginx:latest

2.  简单启动镜像(为了后面拷贝文件):

docker run -d -p 8092:80 --name nginx_01 nginx

3. 本地宿主机建三个文件夹:如下如所示:

 

 4. 拷贝文件到宿主机:

# 将容器nginx.conf文件复制到宿主机
docker cp nginx_01:/etc/nginx/nginx.conf D:/data/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx_01:/etc/nginx/conf.d D:/data/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx_01:/usr/share/nginx/html D:/data/nginx/html

5. 停掉并删除刚才启动的容器 ,重新启动并挂载目录:

docker run -d -p 8092:80 -v D:/data/nginx/html:/usr/share/nginx/html:ro -v D:/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v D:/data/nginx/conf/conf.d:/etc/nginx/conf.d -v D:/data/nginx/log:/var/log/nginx --restart=always --name nginx_01 nginx

启动容器命令的详细解释:

  • docker run:运行一个新的容器。
  • -d:以后台模式运行容器。
  • -p 8092:80:将容器内的端口 80 映射到主机的端口 8092。这样可以通过主机的端口访问 Nginx 服务。
  • -v D:/data/nginx/html:/usr/share/nginx/html:ro:使用卷挂载功能,将本地目录 D:/data/nginx/html 挂载到容器内的 /usr/share/nginx/html 目录,并设置为只读(ro)。这样可以将自定义的 HTML 文件挂载到 Nginx 容器,用于网站内容的展示。
  • -v D:/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:使用卷挂载功能,将本地文件 D:/data/nginx/conf/nginx.conf 挂载到容器内的 /etc/nginx/nginx.conf 文件。这样可以使用自定义的 Nginx 配置文件。
  • -v D:/data/nginx/conf/conf.d:/etc/nginx/conf.d:使用卷挂载功能,将本地目录 D:/data/nginx/conf/conf.d 挂载到容器内的 /etc/nginx/conf.d 目录。这样可以挂载自定义的 Nginx 配置文件片段。
  • -v D:/data/nginx/log:/var/log/nginx:使用卷挂载功能,将本地目录 D:/data/nginx/log 挂载到容器内的 /var/log/nginx 目录。这样可以将 Nginx 的日志文件存储到本地目录。
  • --restart=always:设置容器在退出时自动重启。
  • --name nginx_01:为容器指定一个名称
  • nginx:基于 Nginx 镜像运行容器。

 6. 修改目录conf.d下配置文件default.conf,添加如下配置:

location /apollo {
	    proxy_pass http://172.25.176.1:8088;  #本地Java服务IP地址+端口号(这里不能写成localhost)
		proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
	}

 7. 调用本地接口验证:

http://localhost:8092/apollo/getConfig

参考文章

使用Docker安装Apollo并使用SpringBoot连接配置中心 - sowler - 博客园 

docker部署常见中间件_docker 中间件-CSDN博客

docker部署nginx-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/902578.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Keil5教程及技巧】耗时一周精心整理万字全网最全Keil5(MDK-ARM)功能详细介绍【建议收藏-细细品尝】

&#x1f48c; 所属专栏&#xff1a;【单片机开发软件技巧】 &#x1f600; 作  者&#xff1a; 于晓超 &#x1f680; 个人简介&#xff1a;嵌入式工程师&#xff0c;专注嵌入式领域基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大家&#xff1…

ARM学习(34) GDB 调试器详细了解

笔者来聊一下对于GDB的一些操作使用认识。 1、GDB的使用以及用途 GDB是GNU的一个项目&#xff0c;具体网站如下&#xff0c;网址&#xff1a;https://www.gnu.org/software/gdb/ 支持多种语言&#xff0c;常用的就是C/C/Python等等跨平台使用&#xff0c;Linux/windows/MacOS…

电机---3直流有刷减速电机

前言 在简单了解电机分类后&#xff0c;为了能够更深入学习了解电机、编码器、PID算法等内容&#xff0c;选择使用野火的直流减速有刷电机和其驱动板进行学习&#xff0c;单片机开发板选择野火的指南者开发板。 1直流有刷减速电机 直流有刷电机转速快&#xff0c;扭矩小&…

SQL Server 当前日期及其未来三天的日期

当前日期及其未来三天的日期&#xff0c;并分别以 YYYY-MM-DD 和 yyyyMMdd 的格式展示 1、当前日期及其未来三天的日期&#xff0c;以 YYYY-MM-DD的格式展示 WITH CurrentDate AS (SELECT GETDATE() AS 当前日期 ) -- 使用 CONVERT 函数 SELECTCONVERT(VARCHAR(10), 当前日期,…

【Android】ViewPager与ViewPager2之间的区别

ViewPager 和 ViewPager2 都是 Android 中用于实现滑动页面切换的控件&#xff0c;但 ViewPager2 是对 ViewPager 的改进和增强版本。 区别 实现方式 ViewPager 继承自 ViewGroup&#xff0c;内部并未使用已有的成熟控件&#xff0c;更多的是自定义的操作。ViewPager2 也继承…

【verilog】模十计数器

文章目录 前言代码 前言 进行 FPGA 模十计数器 实验 仿真结果 代码 主代码 // module module count(clk,rst_n,count,clk1,led);// def io input clk; input rst_n; output reg [3:0] count; output reg clk1; output reg [7:0] led;// always part, or main() always (pos…

【吐槽】豪斯医生之二:第 4-6 集

写在前面 5841 字 | 医学 | 吐槽 | 电视剧 正文 维基百科&#xff1a;   利巴韦林&#xff08;英语&#xff1a;Ribavirin&#xff0c;俗称病毒唑&#xff09;&#xff0c;是一种抗病毒药&#xff0c;属合成核苷类药&#xff0c;1970 年由 ICN 制药公司 Joseph T. Witkowsk…

景区导航地图怎么实现?基于LBS与3D GIS的智慧景区导航导览系统技术路线

随着经济的发展和人们物质生活水平改善,居民的旅游需求呈现多元化和个性化&#xff0c;自助旅游的人越来越多。许多游客在旅游行程中需要随时随地了解旅游景点有关的各类信息&#xff0c;如旅游景点介绍、推荐路线、地图导航等&#xff0c;合理规划和安排旅游线路。正是为了应对…

Docker | images镜像的常用命令总结

命令总结 1. 帮助启动类命令基本命令systemctl status dockerdocker infodocker --help 2. 镜像命令docker images删除镜像出现错误 docker searchdocker pull xxx[:TAG]docker images -adocker images -qdocker system dfdocker rmi -f xxxxxdocker rmi -f $(docker images -q…

Python量子生成对抗网络QGAN神经网络药物发现、多方法乳腺癌药物筛选应用

全文链接&#xff1a;https://tecdat.cn/?p37975 分析师&#xff1a;Chenhao Wu 在当今的医学领域&#xff0c;乳腺癌作为一种严重威胁女性健康的疾病&#xff0c;其治疗一直是科研工作者们关注的焦点。乳腺癌的发展与雌激素受体密切相关&#xff0c;其中 ERα 被视为治疗乳腺…

还愁布线呢?那是你没看过这篇

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 上午好&#xff0c;我的网工朋友 综合布线作为网工工作中的基础部分&#xff0c;其设计和实施的质量直接影响到整个系统的稳定性和可靠性。对于咱…

面了 minimax 大模型算法岗,问的贼细!

不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些球友解惑答疑&#xff0c;分享技术面试中的那些弯弯绕绕。 今天…

【架构】Service Mesh

文章目录 概述微服务架构对比Rainbond与ServiceMesh来源 概述 Service Mesh 公认的定义&#xff0c;是用以处理服务与服务之间通信的专用基础设施层。更本质的理解&#xff0c;它是服务治理平台&#xff0c;是业务逻辑解耦的必然产物&#xff0c;是数字经济背景下企业对研发效…

基于flask和neo4j的医疗知识图谱展示问答系统

如果你仍在为毕业设计的选题发愁&#xff0c;或者想通过技术项目提升专业实力&#xff0c;这个基于Flask和Neo4j的医疗知识图谱展示与问答系统&#xff0c;绝对是个不错的选择&#xff01; 项目亮点大揭秘&#xff1a; 知识图谱与问答结合&#xff1a;我们采用了医疗场景下的知…

remote: HTTP Basic: Access denied

解决方法 输入&#xff1a; git config --system --unset credential.helper 再次进行 Git 操作&#xff0c;输入正确的用户名&#xff0c;密码即可。

STM32硬件平台

STM32 系列是 STMicroelectronics 设计的高度灵活、广泛应用的微控制器&#xff08;MCU&#xff09;系列&#xff0c;支持从低功耗应用到高性能处理的需求&#xff0c;适用于工业、汽车、消费电子和物联网等广泛领域。STM32 系列具有广泛的硬件种类和丰富的功能&#xff0c;以下…

OpenCV视觉分析之运动分析(5)背景减除类BackgroundSubtractorMOG2的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 基于高斯混合模型的背景/前景分割算法。 该类实现了在文献[320]和[319]中描述的高斯混合模型背景减除。 cv::BackgroundSubtractorMOG2 类是 O…

基于GPT的智能客服落地实践

&#x1f4cd;前言 在日常生活中&#xff0c;「客服」这个角色几乎贯穿着我们生活的方方面面。比如&#xff0c;淘宝买东西时&#xff0c;需要客服帮你解答疑惑。快递丢失时&#xff0c;需要客服帮忙找回。报名参加培训课程时&#xff0c;需要客服帮忙解答更适合的课程…… 基…

通过AWS Bedrock探索 Claude 的虚拟桌面魔力:让 AI 代替你动手完成任务!

前言 大家好&#xff0c;昨夜Anthropic 发布了更新。现在 Claude 3.5 Sonnet&#xff08;V2&#xff09; 和 Claude 3.5 Haiku&#xff0c;以及名为 computer use 的新功能已经作为公开测试版发布了。 Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Ha…

【JavaEE】【多线程】线程池

目录 一、线程池二、ThreadPoolExecutor类讲解2.1 构造方法2.1.1 corePoolSize和maximumPoolSize2.1.2 KeepAliveTime和unit2.1.3 workeQueue2.1.4 threadFactory2.1.5 handler 三、简易构造线程池四、自己实现一个简单线程池 一、线程池 线程池&#xff1a;线程池可以简单理解…