Windows10环境下制作SpringBoot项目的Docker镜像以及与宿主机上MySQLRedis进行桥接通信
Posted zbk_pointer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows10环境下制作SpringBoot项目的Docker镜像以及与宿主机上MySQLRedis进行桥接通信相关的知识,希望对你有一定的参考价值。
Windows10环境下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:
一、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进行桥接通信的主要内容,如果未能解决你的问题,请参考以下文章