当前位置:   article > 正文

docker系列之打包spring boot 项目成docker镜像_如何使用docker把本地的springboot项目打包成镜像

如何使用docker把本地的springboot项目打包成镜像

前言

Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。使用Docker可以实现开发人员的开发环境、测试人员的测试环境、运维人员的生产环境的一致性。

今天,我们将spring boot 项目打包成docker镜像到远程服务器并启动服务的二种方式

一、方式一(使用Dockerfile文件生成镜像)

1、先把java项目使用maven插件打包成jar包。

2、将.jar包放在有docker环境的服务器中(本文使用本机windows)

3、先将.jar文件放入指定目录,并新建Dockerfile文件

 

Dockerfile文件内容:

  1. # java8运行环境
  2. FROM java:8
  3. # 作者名称
  4. MAINTAINER Dome
  5. # 切换工作目录
  6. WORKDIR /root/java
  7. # 添加demo-start-1.0.0.jar文件到docker环境内
  8. ADD demo-start-1.0.0.jar /root/java/demo-start-1.0.0.jar
  9. # 暴露端口8080
  10. EXPOSE 8080
  11. # 运行命令
  12. ENTRYPOINT ["java", "-server", "-Xms512m", "-Xmx512m", "-jar", "/root/java/demo-start-1.0.0.jar"]

4、在当前目录下运行指令,构建镜像

docker build -t demo:0.0.1
  1. 说明:
  2. -t 参数指定构建成后,镜像的仓库、标签等
  3. demo:0.0.1 demo镜像名称、0.0.1 镜像标签

5、直接运行镜像试试能不能成功

docker run -p 8080:8080 -t demo:0.0.1

如何将Docker镜像上传到Docker hub仓库

1、先创建Docker hub账号,记住username password后面验证时,需要使用到。

2、先登录Docker hub

docker login -u username -p passwork

3、将构建好的镜像打上标签

docker tag demo:0.0.1 username/demo:0.0.1
  1. 说明:
  2. docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  3. 本地镜像名称:版本号 DockerHub账号名/镜像名称:版本号

 

上传中

 

上传后结果(Docker hub仓库):

 

 注:

如果需要上传到其他镜像创建上面命令的改动如下(以阿里云为例子):

先登录:

docker login -u username [registry.cn-shenzhen.aliyuncs.com](<http://registry.cn-shenzhen.aliyuncs.com/>)

回车后输入密码,则登录成功

打标记:

docker tag demo:0.0.1 [registry.cn-shenzhen.aliyuncs.com](<http://registry.cn-shenzhen.aliyuncs.com/>)/username/demo:0.0.1

上传镜像:

docker push [registry.cn-shenzhen.aliyuncs.com](<http://registry.cn-shenzhen.aliyuncs.com/>)/username/demo:0.0.1

二、方式二(maven插件)

Maven是目前最流行的Java项目管理工具之一,提供了强大的包依赖管理和应用构建功能。

1、修改pom.xml

  1. <plugins>
  2. <plugin>
  3. <groupId>com.google.cloud.tools</groupId>
  4. <artifactId>jib-maven-plugin</artifactId>
  5. <version>3.2.0</version>
  6. <executions>
  7. <execution>
  8. <phase>package</phase>
  9. <goals>
  10. <goal>build</goal>
  11. </goals>
  12. </execution>
  13. </executions>
  14. <configuration>
  15. <from>
  16. <!-- 与Dockfile文件的 《FROM java:8》相当 -->
  17. <image>java:8</image>
  18. </from>
  19. <to>
  20. <!-- docker.io 镜像仓库域名 -->
  21. <!-- username 账号名称 -->
  22. <!-- demo 镜像名称 -->
  23. <!-- 0.0.2 标签 -->
  24. <image>docker.io/username/demo:0.0.2</image>
  25. <auth>
  26. <!-- username 账号名称 -->
  27. <!-- passwork 账号密码 -->
  28. <username>username</username>
  29. <password>passwork</password>
  30. </auth>
  31. </to>
  32. <container>
  33. <creationTime>USE_CURRENT_TIMESTAMP</creationTime>
  34. <!--命令参数 -->
  35. <jvmFlags>
  36. <jvmFlag>-server</jvmFlag>
  37. <jvmFlag>-Xms512m</jvmFlag>
  38. <jvmFlag>-Xmx512m</jvmFlag>
  39. </jvmFlags>
  40. <args>
  41. <arg>--spring.profiles.active=prod</arg>
  42. </args>
  43. </container>
  44. </configuration>
  45. </plugin>
  46. </plugins>

2、执行打包命令,即可上传到指定仓库

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号