• 构建springboot项目
  • 打包应用
  • 编写dockerfile
  • 构建镜像,发布运行到docker

    构建springboot项目这部分不过多赘述

  • 假定有java基础并熟悉IDEA的常用操作

image.png

  • 因为是测试,所以就简单的写一个controller然后开搞
  • 编写完成后本地run一下,没有问题直接package得到jar包
  • image.png

    编写Dockerfile

  • 命名严格按照Dockerfile标准,不然后续执行的时候需要 -f 指定dockerfile的名字

  • Dockerfile 放在根目录下,如下图

image.png

  • 编写 ```java FROM java:8 # 定义基础镜像

COPY *.jar /app.jar # 将jar拷贝

CMD [“—server.port=8080”] # 设定端口

EXPOSE 8080 # 暴露端口

ENTRYPOINT [“java”,”-jar”,”/app.jar”] # java -jar **.jar 包运行项目

  1. - 本例是一个十分简单的dockerfile实例,后续看情况更新war包的cd流程。
  2. <a name="gfs4c"></a>
  3. ## docker内构建镜像
  4. - dockerfile jar包拷贝到docker宿主机中。
  5. - 执行命令 docker build -t 你喜欢的命名 .
  6. - 执行命令中后面的 "."不可省略,意思是当前目录下
  7. - 注意:
  8. - 因前边编写 Dockerfile时命名为 Dockerfile 此时docker会自动去寻找定位到Dockfile
  9. - 否则,需要 -f 指定dockerfile的文件名,
  10. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/1608527/1603848930617-af05e74a-9101-4f68-8b3f-b370c134b3ad.png#align=left&display=inline&height=543&margin=%5Bobject%20Object%5D&name=image.png&originHeight=543&originWidth=937&size=64781&status=done&style=none&width=937)
  11. <a name="U0r84"></a>
  12. ## 运行
  13. ```java
  14. $ docker run -d -P --name adi-spring-web adi666
  • -d 后台运行
  • -P 自动分配端口
    • -p 8080:8080 手动分配端口,前为宿主机端口,后为容器内映射端口
  • —name 命名

    验证

    image.png

  • docker ps -a 查询所有证在运行的容器

  • 因为之前使用了 -P 自动分配端口,分配出来的端口为 32770
  • curl命令进行验证,正常访问到springboot应用,
  • 结束