0101tomcat部署war访问mysql失败-容器间通信-docker项目部署

news2024/11/26 0:40:54

文章目录

    • 一、简介
    • 二、部署
      • 1、mysql数据迁移
      • 2、docker部署redis
      • 3、docker部署tomcat并运行war包
    • 三、报错
    • 四、解决
      • 1 分析
      • 2 解决
    • 结语

一、简介

最近参与开发一个项目,其中一部分系统需要迁移。从阿里云迁移到实体服务器,使用docker部署。系统使用Java语言开发,springboot单体应用,另外需要单独部署的服务为mysql和redis。环境如下:

软件版本描述
springboot2.5.14Java web开发脚手架
mysql5.7.36关系型数据库
redis6.2.6内存数据库
tomcat8.5.xweb服务器
jdk1.8java开发工具集

二、部署

1、mysql数据迁移

这个没什么好说的,直接备份数据库,导入数据库即可。docer部署mysql可以参考下面链接1.

2、docker部署redis

redis单节点,拉取镜像,运行容器即可

docker run -d --name redis -p 6379:6379 redis

暂时不需要配置优化参数啥的

3、docker部署tomcat并运行war包

可以通过打镜像的方式吧war包放置在tomcat /usr/local/tomcat/webapps下面,或者运行tomcat容器后,通过命令拷贝至该目录下。我这里用的docker桌面版,直接运行容器,上传war包。

运行tomcat容器

docker run -d --name tomcat-competition -p 8080:8080 tomcat:8.5.100-jdk8-temurin-jammy

上传war包

在这里插入图片描述

上传war包后自动解压为对应名称的文件夹,内容同工具jd-gui看到的一样。

三、报错

查看tomcat日志,报错内容如下:

2024-04-13 10:21:35 02:21:35.302 [localhost-startStop-1] ERROR c.a.d.p.DruidDataSource - [init,931] - init datasource error, url: jdbc:mysql://127.0.0.1:3306/xxxxx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
2024-04-13 10:21:35 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
  • xxxx:数据库名称

四、解决

1 分析

我服务要访问mysql 但是配置的地址为127.0.0.1 即本机地址,但是我们知道docker容器网络运行在docker网络虚拟网卡上。我的tomcat-competition容器访问不到msyql5.7这个容器中mysql的。方案有两种,

  • 方案1:查看容器在docker网络中ip地址,配置改为相应的地址
  • 方案2:自定义docker网络,把相关容器放置在该自定义网络中,通过容器名访问。

因为给容器分配ip地址是动态的,每次启动可能ip地址会变,所以不建议用方案1。我们使用方案2。

2 解决

步骤一:创建自定义网络

docker network create --driver bridge common-net

步骤二:把相关容器加入该网络

docker network connect common-net mysql5.7
docker network connect common-net redis
docker network connect common-net tomcat-competition

步骤三:把msyql和redis配置中的host改为相应的容器名,重新打war包,重新上传至tomcat,重启容器。

现在容器间可正常通信。

关于docker容器通信内容,参考下面链接2

结语

欢迎小伙伴一起学习交流,需要啥工具或者有啥问题随时联系我。

❓QQ:806797785

⭐️源代码地址:https://github.com/gaogzhen/

[1]0101docker mysql8镜像主从复制-运维-mysql[CP/OL]

[2]Docker 网络模式详解及容器间网络通信[CP/OL]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RAG进阶之通用文档处理:从RAGFlow、TextMonkey到mPLUG-DocOwl 1.5

前言 我司RAG项目组每个月都会接到一些B端客户的项目需求,做的多了,会发现很多需求是大同小异的,所以我们准备做一个通用的产品,特别是对通用文档的处理 而在此之前,我们则想先学习一下目前市面上各种优秀的解决方法…

IIS服务器更换即将过期的SSL证书

公司IIS服务器证书快要过期,替换证书的步骤: Winr输入mstsc命令,显示远程登录;输入服务器IP以及密码,进行远程登陆登陆IIS服务器,winr输入inetmgr命令显示IIS操控器;选择服务器证书--点击服务器…

成为摄影拍照高手,摄影技术进阶秘籍

一、资料前言 本套摄影高手资料,大小2.02G,共有57个文件。 二、资料目录 DSLR数码单反摄影圣经.pdf photoshop超细的人像后期磨皮及专业美化.docx “失传”的人像拍摄绝技.doc 白加黑减.怎样应用曝光补偿.pdf 标准镜头秘笈:标准镜如何…

快速寻找可以构建出网通信隧道的计算机

点击星标,即时接收最新推文 本文选自《内网安全攻防:红队之路》 扫描二维码五折购书 为加强内网的安全防范,安全管理员往往会限制内网计算机访问互联网,当然不同机构的限制策略是不一样的,有的完全阻断了内网计算机访问…

langchain LCEL,prompt模块,outputparse输出模块

目录 基本代码 prompt模块 prompt模版控制长度 outputparse格式化输出 并行使用调用链 LangChain表达式语言,或者LCEL,是一种声明式的方式,可以轻松地将链条组合在一起 langchian 可以使用 通义千问,我们用通义千问&#x…

openkylin系统通过网线连接ubuntukylin系统上网攻略

openkylin系统通过网线连接ubuntukylin系统上网攻略 主机1:x64 amd ,系统:ubuntukylin 22.04 ,状态:通过wifi连接热点进行上网,并共享网络。 主机2:x64 intel ,系统:ope…

阿里一面:如何将重复性比较高的 String 类型的地址信息从 20GB 降到几百兆?...

这次应该是互联网及软件行业的第三次寒潮,大家在寒潮中一定要继续保持学习,寒潮挺过去以后还是会迎来新的发展机遇。 有粉丝去阿里面试,跟码哥分享了其中一题面试问题「如何将重复性比较高的 String 类型的地址信息从 20GB 降到几百兆&#x…

linux创建文件、linux创建文件的几种方式、touch、echo、cat、vi、vim

文章目录 一、创建文件1.1、touch1.2、echo1.3、cat1.4、vi或vim 一、创建文件 1.1、touch touch命令:用于创建一个新的空文件或者更新已存在文件的访问和修改时间。 (1)如果目标文件不存在,则新建一个文件 touch demo.txt&am…

AcWing 1388. 游戏(每日一题)

原题链接:1388. 游戏 - AcWing题库 玩家一和玩家二共同玩一个小游戏。 给定一个包含 N 个正整数的序列。 由玩家一开始,双方交替行动。 每次行动可以在数列的两端之中任选一个数字将其取走,并给自己增加相应数字的分数。(双方…

Vscode设置滚轮进行字体大小的调节

Vscode设置滚轮进行字体大小的调节 正常的话按 ctrl 或者 ctrl - 进行字体的大小调节 1.打开Vscode,找打设置的图标,在点击设置,或者直接使用快捷键,【ctrl ,】 2. 在搜索框搜索Font Ligatures 3.双击进入settings.json ,找到如…

[大模型]# Yi-6B-Chat Lora 微调

Yi-6B-Chat Lora 微调 概述 本节我们介绍如何基于 transformers、peft 等框架,对 Yi-6B-Chat 模型进行 Lora 微调。Lora 是一种高效微调方法,深入了解其原理可参见博客:知乎|深入浅出Lora。 本节所讲述的代码脚本在同级目录 04-Yi-6B-Chat…

【教学类-52-04】20240412动物数独(4宫格)空1-空15

作品展示 背景需求: 【教学类-52-03】20240412动物数独(4宫格)难度1-9 打印版-CSDN博客文章浏览阅读603次,点赞20次,收藏8次。【教学类-52-03】20240412动物数独(4宫格)难度1-9 打印版https://…

Razzashi Raptor

拉扎什迅猛龙 Razzashi Raptor 95000金(游戏币)比老虎便宜多了,捡漏啊 为啥我开团都不出,很生气,去打架!!

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题2

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题2 信息安全管理与评估 网络系统管理 网络搭建与应用 云计算 软件测试 移动应用开发 任务书,赛题,解析等资料,知识点培训服务 添加博主wx:liuliu548…

在线药房数据惨遭Ransomhub窃取,亚信安全发布《勒索家族和勒索事件监控报告》

本周态势快速感知 本周全球共监测到勒索事件119起,与上周相比勒索事件有所增长。 本周Blacksuit是影响最严重的勒索家族,Ransomhub和Blackbasta恶意家族紧随其后,从整体上看Lockbit3.0依旧是影响最严重的勒索家族,需要注意防范。…

《五》QListWidget列表框

QListWidgetQListWidget和QListWidgetItem QListWidget 是qt中的列表框控件,它用于显示多个列表项,列表项对应的类是QListWidgetItem. QListWidget列表框的创建 QListWidget 类的继承关系如下: QListWidget -> QListView -> QAbs…

SonarQube 9.9.4 LTS社区版安装

目标 安装个SonarQube社区版. 安装SonarQube9.9.4 LTS社区版 https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.4.87374.zip # 切换到安装目录 cd /opt # 下载安装包 sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube…

中国移动校园招聘相关笔试题整理

目录 公司文化文档更新时间 公司文化 24年的 改正地方: 世界电信日:1969年5月17日18年的企业文化题 改正地方: 中国移动企业发展定位是:世界一流企业 中国移动的企业文化体系主要由核心价值观、使命和愿景三部分构成。 核心价值观…

基于Springboot的自习室预订系统

基于SpringbootVue的自习室预订系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录页 网站首页 公告信息 留言反馈 后台管理 学生信息管理 公告信息管理 留言…

004Node.js常用快捷键

1.常用的终端命令: (1)del 文件名: 删除文件 (2)ipconfig: 查看IP命令 (3)mkdir 目录名 :在当前目录新建指定目录 (4)rd 目录名:在当前…