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

Posted zbk_pointer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows10环境下制作SpringBoot项目的Docker镜像以及与宿主机上MySQLRedis进行桥接通信相关的知识,希望对你有一定的参考价值。

软件版本

  • 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:

一、IDEA配置Docker

1,暴露Docker后台

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

2,IDEA中配置连接Docker后台

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

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,项目镜像和容器参数配置


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

5,启动容器


项目中包含数据库和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网卡信息

2,项目配置文件替换

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

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 刷新权限信息

4,修改Redis IP访问权限

添加上述IP地址到bind行。

三、实战结果

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

以上是关于Windows10环境下制作SpringBoot项目的Docker镜像以及与宿主机上MySQLRedis进行桥接通信的主要内容,如果未能解决你的问题,请参考以下文章

win10的path环境变量怎么恢复

❤️Windows10环境下Docker安装主从MySQL5.7数据库❤️

Windows image 制作

Windows下设置Ubuntu引导项

添加Windows 10开机启动项:No Hyper-V

制作Windows环境下Barnyard2安装包