1、前置
  1. 上面博客已经写了项目的搭建方式,等一些介绍 传送门:javascript:void(0)
  2. 我用的Windows, 这个其实没有什么区别哈
  3. 开发工具是 IntelliJ IDEA
  4. 会介绍两种上传到服务器的方式
2、IDEA配置

IDEA SpringBoot 聚合项目打jar包,docker部署_docker
successful是链接成功
以我Windows为列的话, 需要开启这个:
IDEA SpringBoot 聚合项目打jar包,docker部署_spring boot_02
项目结构:
IDEA SpringBoot 聚合项目打jar包,docker部署_docker_03
Dockerfile文件内容:

#  基础镜像必要,代表你的项目将构建在这个基础上面
FROM java:8
# 对外端口
EXPOSE 8088
# 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为 testDemo.jar.我们在base(项目入口)的pom.xml中指定了打包后的jar名
COPY base/target/testDemo.jar testDemo.jar
# 运行jar包
RUN bash -c 'touch /testDemo.jar'
# 指定容器启动程序及参数
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/testDemo.jar"]

IDEA SpringBoot 聚合项目打jar包,docker部署_后端_04
IDEA SpringBoot 聚合项目打jar包,docker部署_spring boot_05

3、打包jar文件

先选择环境,这个前面有说过这个
IDEA SpringBoot 聚合项目打jar包,docker部署_spring boot_06
package前可以先clenan一下
IDEA SpringBoot 聚合项目打jar包,docker部署_后端_07
这个时候我们可以先运行一下这个jar文件, 看下我们打包的文件有没有什么问题在来操作下一步:
IDEA SpringBoot 聚合项目打jar包,docker部署_容器_08

4、通过本地docker上传到服务器

1、打包镜像到本地

IDEA SpringBoot 聚合项目打jar包,docker部署_容器_09

IDEA SpringBoot 聚合项目打jar包,docker部署_docker_10

IDEA SpringBoot 聚合项目打jar包,docker部署_docker_11

运行镜像,看下有没有问题;
IDEA SpringBoot 聚合项目打jar包,docker部署_容器_12
OK,到目前这一步,我们镜像就打包完成了,剩余的就将镜像传到我们服务器上面,不能在本机跑啥.
两个方法:

  1. 通过私有docker库:,传送门: javascript:void(0)
  2. 通过docker官方的来进行传送,docker hub,好像是这个,可以将项目设置成私有的,建议不要使用这种方式
  3. 就是我接下来要介绍的

2、上传镜像到服务器

先打包本地镜像

docker save -o testdemo.tar testdemo:1.0  

IDEA SpringBoot 聚合项目打jar包,docker部署_spring boot_13
上传到服务器

解压文件到镜像:

docker load < testdemo.tar

IDEA SpringBoot 聚合项目打jar包,docker部署_java_14



5、直接打包镜像到服务器 (推荐)

1、 这个地方配置成服务器的地址

IDEA SpringBoot 聚合项目打jar包,docker部署_spring boot_15

2、 配置服务器的docker

文件地址:
vim /usr/lib/systemd/system/docker.service

所加参数:
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

systemctl daemon-reload // 1,加载docker守护线程
systemctl restart docker // 2,重启docker

开启了2375端口,一定要注意关闭,因为这个端口,我只要知道了你的服务器IP地址,就能连接上的docker服务,.然后拉取到你的镜像…防火墙,安全组,指定IP,证书都可以进行处理,这个地方一定要注意
IDEA SpringBoot 聚合项目打jar包,docker部署_java_16
需要注意的地方有: 这个地方的格式一定要确认, 不然写错了, 重启会失败的, 然后不要卸载重装, 要相信自己是可以解决的
会报这个错误:

Failed to restart docker.service: Unit is not loaded properly: Invalid argument. See system logs and 'systemctl status docker.service' for details.

IDEA SpringBoot 聚合项目打jar包,docker部署_容器_17

3、运行dockerfile文件: Build Image

IDEA SpringBoot 聚合项目打jar包,docker部署_后端_18

4、到服务器查看

docker images
6、杂谈
  1. 也是在网上找了写教程,然后才弄出来,难度的话,要是清楚了感觉很简单,但是要是没有弄过的话,可能就会有点点难吧,一点点

  2. 配置docker容器环境变量ENV JAVA_OPTS=""

  3. 感觉好像没有什么可以特别注释的了,都满简单的

  4. 1、Maven Profiles 选择环境,勾选一个
    2、Maven testdemo(root) --> clean --> package
    3、修改docker配置文件 Run/Debug Configurations里面, 修改版本号 Image tag (每次更新要注意版本号修改一下,以便区分)
    4、Dockerfile文件中的箭头,build image
    5、查看镜像 docker images
    6、本地测试跑一遍
    7、docker save -o testdemo.tar testdemo:1.0
    8、上传到服务器
    9、docker load < testdemo.tar
    10、docker run -p 8080:8080 --name testdemo–restart=always -d testdemo:1.0 (-v 日志挂载、图片等文件挂载出来)
    11、查看启动日志,确认启动状态,配置环境,环境启动日志的前面几行中会有显示

  5. springboot的单项目也是可以这样操作的

  6. 首推第五种方式, 操作本地docker在上传还麻烦些, 首先打包的镜像会很大, 上传也会很耗时

  7. 最后说一点, 如果配置服务器的docker, 报错了, 就是第五节的第二步, 不要想着卸载, 我当时出现这个错误, 在网上也是找了很多教程, 然后都是卸载大法, 法力无边. 其实自己思考一下, 就会知道问题出现在哪里

  8. 开启了2375端口,一定要注意关闭,因为这个端口,我只要知道了你的服务器IP地址,就能连接上的docker服务,.然后拉取到你的镜像…防火墙,安全组,指定IP,证书都可以进行处理,这个地方一定要注意