Windows中将springboot项目运行到docker的容器中

0,先打包好项目,再启动docker
请添加图片描述

1,在Java项目根目录下创建一个名为Dockerfile的文件(没有扩展名),并添加以下内容。

# 使用OpenJDK的基础镜像
FROM openjdk:8-jdk-alpine

# 设置工作目录
WORKDIR /app

# 将项目中的jar包复制到镜像中,并且在镜像中的/app工作目录下重命名为app.jar
COPY target/打好的应用包.jar app.jar

# 暴露应用端口
EXPOSE 8080

# 启动应用
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

请添加图片描述

2,打开PowerShell,导航到你的项目根目录(包含Dockerfile的目录),然后运行以下命令来构建Docker镜像,注意命令最后的 . ,代表在当前目录下的Dockerfile文件
docker build -t 镜像名称 .

3,构建完镜像后,使用以下命令来运行容器:-d表示在后台运行容器,-p 8080:8080将容器的8080端口映射到主机的8080端口
docker run -d -p 8080:8080 --name 对外显示的容器名称 镜像名称
请添加图片描述

4,打开浏览器,访问http://localhost:8080看是否正常运行,以下命令可以查看日志
docker logs 对外显示的容器名称
请添加图片描述

以上部分还不能访问数据库,有几种解决方案,我试过之后再更新上来
1将数据库服务也容器化
2修改Docker容器的网络配置
3使用Docker Compose来管理多容器应用

解决方案一:
在上方第3步的指令中添加一个–net=host设置网络为共享主机模式,这样能访问宿主机的数据库,如下:

docker run -d -p 8080:8080 --name 对外显示的容器名称 --net=host 镜像名称

但意义不大,因为数据库要么在其它服务器,要么在其它容器中。

解决方案二:
为了安全起见,容器创建时默认是桥接模式,不管容器是否设置了共享主机模式,先在PowerShell中从容器ping一下数据库所在ip,看是否能通,或者用telnet看一下是否能连上3306端口。

docker exec -it 项目所在容器名称 ping 数据库所在容器名称或者IP地址
docker exec -it 项目所在容器名称 telnet 数据库所在容器名称或者IP地址 3306

请添加图片描述
能ping通的话,直接在项目的yml文件中设置数据库配置就好
请添加图片描述
用Navicat连接上数据库,添加数据库所在IP地址的用户,并给与全部权限
请添加图片描述
停止容器,删除容器,重新执行第2和第3步构建镜像和运行容器即可访问数据库了。

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

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

相关文章

使用html 和javascript 实现微信界面功能1

1.功能说明: 搜索模块: 提供一个搜索框,但目前没有实现具体的搜索功能。 好友模块: 在左侧的“好友”部分有一个“查看好友”按钮。点击左侧的“查看好友”按钮时,会在右侧显示所有好友的列表。列表中每个好友可以点击查看详情,包…

uniapp——H5中使用富文本编辑器,如何使用。

一、插件市场 去插件市场找到这个插件https://ext.dcloud.net.cn/plugin?id14726 二、引入 找到自己项目引入 项目里面多了很多文件 三、使用 找到A页面&#xff0c;在里面引入组件 <view class"editBox"><sp-editor exportHtml"handleExpor…

前端视角下的Go语法学习:创建 Go 项目

今日话题 使用 GoLand 创建 Go 项目 作者&#xff1a; 时间&#xff1a;2024年6月20日 17时16分14秒 主线任务 一、GoLand 创建项目 1、点击 “new Project” 按钮 2、已经有下载过两个 Golang SDK 版本&#xff0c;选择版本创建即可~ 3、如果没有下载过Golang SDK&#…

使用pyinstaller打包pyqt的程序,运行后提示ModuleNotFoundError: No module named ‘Ui_main‘

环境&#xff1a;windowpython3.9pyqt6 使用pyqt UI编辑器生成了main.ui &#xff0c;main.ui编译成了Ui_main.py main.py 使用当前目录下的Ui_main.py。 打包过程没报错&#xff0c;运行报错。 错误如下: 解决方法&#xff1a;pyinstaller -Fw main.py --paths. 使…

1. 机器学习基本知识(4)——机器学习测试和验证

1.6 测试和验证 了解模型对新实例的泛化能力的唯一方法是在新实例上进行实际尝试。 一种方法是将模型部署到生产环境并监控其性能。 ​ 这种方法很有效&#xff0c;但如果模型非常糟糕&#xff0c;你的用户就会抱怨&#xff0c;所以这显然不是最好的方法。 更好的选择是将数…

Qwen 论文阅读记录

本文仅作自己初步熟悉大模型&#xff0c;梳理之用&#xff0c;慢慢会更改/增加/删除&#xff0c;部分细节尚未解释&#xff0c;希望不断学习之后&#xff0c;能够完善补充。若有同道之人&#xff0c;欢迎指正探讨。 关于后面的code-qwen and math-qwen&#xff0c;我个人认为依…

yarn 安装问题

Couldn’t find package “regenerator-runtime” on the “npm” registry. Error: Couldn’t find package “watch-size” on the “npm” regist 标题Error: Couldn’t find package “babel-helper-vue-jsx-merge-props” on the “npm” registry. Error: Couldn’t f…

【开源】基于SpringBoot框架的音乐网站与分享平台(计算机毕业设计)+万字说明文档 T011

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可 操作系统…

【SpringMVC】应用分层

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;场景引入 二&#xff1a;前后端分离三层架构 1&#xff1a;表现层 2&#xff1a;业务…

防火墙旁挂部署+故障切换

一、实验环境 华为ENSP 二、拓扑 三、目的 1、内网PC1访问Server 2、防火墙旁挂部署&#xff0c;对流量进行过滤&#xff0c;防火墙挂掉之后&#xff0c;内网PC1能继续访问到Server 3、防火墙恢复正常后&#xff0c;流量能回切至防火墙转发 四、思路&#xff1a; 1、AR1…

MySQL8版本升级

1.官方升级手册必看 1.1 理解升级过程会做什么 手册网址&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/upgrading.html 升级mysql 系统数据库&#xff08;默认的库&#xff09;&#xff0c;升级mysql 用户数据库&#xff08;用户创建的库&#xff09; 升级步骤分为…

5G中的随机接入过程可以不用收RAR?

有朋友提到了一种不用接收RAR的RA过程&#xff0c;问这个是怎么回事。其实在刚刚写过的LTM cell switch篇章中就有提到&#xff0c;这里把所有相关的内容整理如下。 在RACH-less LTM场景&#xff0c;在进行LTM cell switch之前就要先知道target cell的TA信息&#xff0c;进而才…

QT数据库SQLite:QsqlTableModel使用总结

数据库连接、数据模型与界面组件所涉及的类之间的关系如下所示&#xff1a; 数据库类 QSqlDatabase 类用于建立与数据库的连接&#xff0c;QSqlDatabase 对象就表示这种连接。QSqlDatabase 类的功能主要分为三大部分&#xff1a; 1、创建数据库连接&#xff0c;即创建 QSqlDat…

C++求20亿内质数的合数“哥德巴赫猜想”

数学领域著名的“哥德巴赫猜想”的大致意思是&#xff1a;任何一个大于2的偶数总能表示为两个素数之和。比如&#xff1a;24519&#xff0c;其中5和19都是素数。本实验的任务是设计一个程序&#xff0c;验证20亿以内的偶数都可以分解成两个素数之和。 输入格式&#xff1a; 输入…

物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果 让树莓派可以识别身边的一些物品&#xff0c;比如电脑&#xff0c;鼠标&#xff0c;键盘&#xff0c;杯子&#xff0c;行李箱&#xff0c;双肩包&#xff0c;床&#xff0c;椅子等 1. 硬件设备 树莓派 5 raspberrypi.com/products/raspberry-pi-5/树莓派官方摄…

模型训练数据-MinerU一款Pdf转Markdown软件

模型训练数据-MinerU一款Pdf转Markdown软件-说明 简介&#xff1a; MinerU是什么 MinerU是上海人工智能实验室OpenDataLab团队推出的开源智能数据提取工具&#xff0c;专注于复杂PDF文档的高效解析与提取。MinerU能将包含图片、公式、表格等元素的多模态PDF文档转化为易于分析…

51c深度学习~合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12750420 #傅里叶特征 (Fourier Feature&#xff09;与核回归 位置编码背后的理论解释 本文探讨了位置编码背后的理论基础&#xff0c;特别是傅里叶特征&#xff08;Fourier Feature&#xff09;与核回归&#xff08;Kern…

数据仓库工具箱—读书笔记01(数据仓库、商业智能及维度建模初步)

数据仓库、商业智能及维度建模初步 记录一下读《数据仓库工具箱》时的思考&#xff0c;摘录一些书中关于维度建模比较重要的思想与大家分享&#x1f923;&#x1f923;&#x1f923; 博主在这里先把这本书"变薄"~有时间的小伙伴可以亲自再读一读&#xff0c;感受一下…

【JVM】JVM基础教程(三)

上一章&#xff1a;【JVM】JVM基础教程&#xff08;二&#xff09;-CSDN博客 目录 运行时数据区 应用场景 程序计数器 程序计数器在运行时会出现内存溢出吗&#xff1f; 栈 IDEA的debug工具查看栈帧的内容 栈帧的组成 局部变量表 关于 this 的内存存储 操作数栈 帧…

如何编译安装系统settings设置应用(5.0.0-Release)

本文介绍如何在OpenHarmony 5.0.0 r版本中修改系统设置应用&#xff0c;并且编译安装到开发板上 开发环境 1.dayu200开发板 2.OpenHarmony 5.0.0r 固件 3.API12 full sdk &#xff08;如果安装full sdk过程中出现报错hvigor ERROR: Cannot find module typescript,请参考 h…