Windows10环境下制作SpringBoot项目的Docker镜像以及与宿主机上MySQL、Redis进行桥接通信

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: Windows10环境下制作SpringBoot项目的Docker镜像以及与宿主机上MySQL、Redis进行桥接通信

软件版本


  • OS: Windows10
  • IDEA: 2020.3
  • JDK: 8
  • MySQL: 5.7
  • WSL:Linux version 5.10.16.3-microsoft-standard-WSL2 (oe-user@oe-host) (x86_64-msft-linux-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP Fri Apr 2 22:23:49 UTC 2021
  • Docker Server:

1666188998703.jpg

一、IDEA配置Docker


1,暴露Docker后台


在Docker Desktop的设置中勾选下图红色长框中的选项。

1666189029343.jpg


2,IDEA中配置连接Docker后台


将上图中的URL填写到下图箭头所指处。

1666189044588.jpg


3,编写Dockerfile文件


在项目中src/main创建docker文件夹,在该文件夹下创建Dockerfile文件。内容为:


FROM java:8
MAINTAINER Chambocang
WORKDIR /
ADD iotProject.jar iotProject.jar
RUN bash -c 'touch /iotProject.jar'
EXPOSE 8081
ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-jar","/iotProject.jar"]

4,项目镜像和容器参数配置


1666189082326.jpg

右键点击Dockerfile文件中Run on Docker按钮,再点击编辑文件菜单选项。依次填写好下图中的序号标出的参数。

1666189103053.jpg


5,启动容器


1666189116075.jpg

项目中包含数据库和Redis的使用,其驱动配置中包含的IP都是127.0.0.1,该IP此时表示容器的环回地址,和宿主机上的监听127.0.0.1的MySQL、Redis两码事。因此容器需要访问宿主机上的MySQL、Redis,必须知道能够和宿主机的127.0.0.1通信的IP地址,因此就涉及Docker网络的知识。


二、开通宿主机上MySQL、Redis的IP访问权限


具体知识自行搜索官方WSL2网络相关讲解,该博客给出答案。


1,查询docker0网卡信息

1666189160800.jpg


2,项目配置文件替换


将host和URL都改为上述IP地址。

1666189175795.jpg


3,修改MySQL IP访问权限


mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>flush privileges;

语句含义如下。


// 其中各字符的含义:
// *.* 对任意数据库任意表有效
// "root" "123456" 是数据库用户名和密码
// '%' 允许访问数据库的IP地址,%意思是任意IP,也可以指定IP
// flush privileges 刷新权限信息

image.png

4,修改Redis IP访问权限


添加上述IP地址到bind行。

image.png


三、实战结果


在浏览器中输入docker0的IP地址以及访问接口,得到如下图之结果。

1666189262540.jpg

相关文章
|
11月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
8月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
2661 8
|
8月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
884 6
|
11月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
399 0
|
11月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
821 0
|
9月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
571 158
|
9月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
9月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1483 152
|
9月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1071 156
|
9月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
614 156