SpringBoot微服务打包Docker镜像分为如下几步:
- 构建springboot项目
- 打包应用
- 编写dockerfile
- 构建镜像
- 发布运行
一、构建SpringBoot项目
1、第一步创建一个springboot微服务项目
2、自定义名称
3、选择需要的Spring Web,然后next
4.编写一个Controller测试类
5、启动springboot项目
6、访问
二、打包应用
1、将项目打包
2、测试是否打包成功
3、将项目拿出来到window机器上测试
下载执行demo
测试成功!!! 则表示服务没有问题
三、在idea中编写dockerfile
1、在idea先下载dockerfile插件
apply下载插件,重启idea
2.此创建dockerfile它会高量
#基础镜像通过java8来的
FROM java:8
#将当前文件中所有*.jar 拷贝到项目的app.jar中(这个app.jar是自己生成的)
COPY *.jar /app.jar
#映射地址
CMD ["--server.prot=8080"]
#暴露端口
EXPOSE 8080
#执行命令java -jar
ENTRYPOINT ["java","-jar","/app.jar"]
四、在linux中构建镜像
1、先创建一个用来build的目录
[root@slaves2 ~]# cd /home/
[root@slaves2 home]# mkdir idea
[root@slaves2 home]# cd idea/
2、上传Dockerfile和jar来创建的目录中
3、构建镜像
[root@slaves2 idea]# docker build -t idea_kuangren .
Sending build context to Docker daemon 17.04MB
Step 1/5 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
60170fec2151: Pull complete
e98f73de8f0d: Pull complete
11f7af24ed9c: Pull complete
49e2d6393f32: Pull complete
bb9cdec9c7f3: Pull complete
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
---> d23bdf5b1b1b
Step 2/5 : COPY *.jar /app.jar
---> 8853aaaa23de
Step 3/5 : CMD ["--server.prot=8080"]
---> Running in e6a28bebdf4c
Removing intermediate container e6a28bebdf4c
---> bb696e4afb42
Step 4/5 : EXPOSE 8080
---> Running in a44bd92fec03
Removing intermediate container a44bd92fec03
---> 77d13935afba
Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
---> Running in e9d82c5d12d4
Removing intermediate container e9d82c5d12d4
---> dadde93171d4
Successfully built dadde93171d4
Successfully tagged idea_kuangren:latest
[root@slaves2 idea]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
idea_kuangren latest dadde93171d4 2 minutes ago 660MB
五、发布运行
1、启动镜像生成容器
[root@slaves2 idea]# docker run -d -P --name kuangren-springboot-web idea_kuangren
659f1335dc902c9f91e77f0990471ab3804c82a6cd57009b1f246b6155980c6f
2、测试访问
[root@slaves2 idea]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
659f1335dc90 idea_kuangren "java -jar /app.jar …" 41 seconds ago Up 40 seconds 0.0.0.0:49155->8080/tcp kuangren-springboot-web
[root@slaves2 idea]# curl localhost:49155
{"timestamp":"2021-01-20T02:19:01.732+00:00","status":404,"error":"Not Found","message":"","path":"/"}
[root@slaves2 idea]# curl localhost:49155/hello
大数据狂神你好啊
以后使用docker之后,给别交付一个镜像即可!