⏬下载docker客户端
下载地址 : https://docs.docker.com/get-docker/
![](https://i-blog.csdnimg.cn/blog_migrate/ac226a4ae742b8927091109cb83b78ef.png)
⏬下载IDEA的docker插件
1.点击设置 ➡ 点击插件 ➡ 搜索docker并下载
![](https://i-blog.csdnimg.cn/blog_migrate/cd939abf419de34ab25cca12c81649b1.png)
💻Windows环境部署
1.点击设置 ➡ 选择docker ➡ 选择docker for Windows ➡ 选择完之后下方会自动显示连接成功
![](https://i-blog.csdnimg.cn/blog_migrate/d57e41172a66f7e14b595a19274abeb6.png)
SpringBoot项目打包(maven/gradle)
maven项目打包
maven项目需要提前在项目中的pom.xml中添加如下参数(避免执行jar包时报没有主清单错误)
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
🧳 最后点击package进行打包
![](https://i-blog.csdnimg.cn/blog_migrate/8f883157034fb7e0c477f623858563f9.png)
📂 jar文件位置
![](https://i-blog.csdnimg.cn/blog_migrate/52c8ccc629fd36ba39b906bf04b127b2.png)
2. gradle项目打包
gradle项目需要提前build.gradle文件中加入gradle 的打包插件(避免执行jar包时报没有主清单错误)
buildscript{
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.3.7.RELEASE")
}
}
🧳 最后点击build进行打包
![](https://i-blog.csdnimg.cn/blog_migrate/d67a595994588c37b803c435739d1176.png)
📂 jar文件位置
![](https://i-blog.csdnimg.cn/blog_migrate/9bd004a01e237a5b4460fb73f7dc5a23.png)
配置DockerFile文件 (maven/gradle)
maven DockerFile配置
### JDK8环境,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9
#作者
MAINTAINER zh<1134386107@qq.com>
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一下挂载文件夹,我这里用不上 写不写都可以
VOLUME /tmp
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD target/*.jar app.jar
#启动容器最后执行命令
ENTRYPOINT ["java","-jar","/app.jar"]
#暴露10000端口
EXPOSE 10000
gradle docker 配置
### JDK8环境,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9
#作者
MAINTAINER zh<1134386107@qq.com>
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一下挂载文件夹,我这里用不上 写不写都可以
VOLUME /tmp
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD build/libs/*.jar app.jar
#启动容器最后执行命令
ENTRYPOINT ["java","-jar","/app.jar"]
#暴露端口
EXPOSE 10303
最后注意一下jar生成的位置, 是否符合dockerfile中填写的路径
✅配置运行dockerfile
1.点击下拉后的编辑配置
![](https://i-blog.csdnimg.cn/blog_migrate/7dcd2d08656d92b436998b7e6a641748.png)
2.添加dockerfile
![](https://i-blog.csdnimg.cn/blog_migrate/8ce0af552e422ab03ac9f3cd13abeb79.png)
选择对应的dockerfile文件, 容器端口填写为项目启动的端口, 其他的内容可以随意填写
![](https://i-blog.csdnimg.cn/blog_migrate/52bfd8653cb1b64266edafe6863dd706.png)
3.最后点击运行, 就会看见日志正常输出了(如果日志卡主没有输出重启IDEA即可)
![](https://i-blog.csdnimg.cn/blog_migrate/92eceba27f96c36379d87a71b279d348.png)
docker中的镜像也会同步输出日志
![](https://i-blog.csdnimg.cn/blog_migrate/8afd5802a7d3267e021378137a2307a3.png)
📀线上docker服务器打包
线上服务器打包其实和本地打包的步骤操作都差不多, 但是需要注意的地方有两点
设置中的docker要改为线上服务器地址
![](https://i-blog.csdnimg.cn/blog_migrate/48bd26c8bb0094b9bc09dec2ff1f7791.png)
在服务器上一定要放行docker的端口(2375)和你启动项目的端口
Centos7放行端口的命令
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#(--permanent 为永久生效,不加为单次有效(重启失效))
📃IDEA日志乱码
这里的乱码是idea的问题, 在docker中日志是显示正常的
![](https://i-blog.csdnimg.cn/blog_migrate/020743e8310109f2ebd8a5bea0ca7c38.png)
解决办法: 在配置文件中加入下面的配置
-Dfile.encoding=utf-8
![](https://i-blog.csdnimg.cn/blog_migrate/9ab9616f8c540a4e16fa1c6c02ab15f2.png)
扫描下方公众号二维码免费领取 简历模板与面试题1000套 👇 👇 👇