1、首先在本地安装docker,步骤可参考https://www.cnblogs.com/conswin/p/11055853.html

2、在对应项目目录下增加Dockerfile文件,其内容可参考如下

  1. FROM openjdk:8-jdk-alpine
  2. VOLUME /tmp
  3. ARG JAR_FILE
  4. COPY ${JAR_FILE} app.jar
  5. ENTRYPOINT ["java","-jar","/app.jar"]

参数讲解:
FROM <image>:<tag> 需要一个基础镜像,可以是公共的或者是私有的, 后续构建会基于此镜像,如果同一个Dockerfile中建立多个镜像时,可以使用多个FROM指令
VOLUME 配置一个具有持久化功能的目录,主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录

ARG 设置编译镜像时加入的参数, ENV 是设置容器的环境变量
COPY : 只支持将本地文件复制到容器 ,还有个ADD更强大但复杂点
ENTRYPOINT 容器启动时执行的命令
EXPOSE 8080 暴露镜像端口

并在pom.xml文件中增加如下:其中docker.image.prefix,finalName标签根据项目名称自定义

  1. <properties>
  2. <docker.image.prefix>demo</docker.image.prefix>
  3. </properties>
  4.  
  5.  
  6.   <build>
  7. <finalName>docker-demo</finalName>
  8. <plugins>
  9. <plugin>
  10. <groupId>com.spotify</groupId>
  11. <artifactId>dockerfile-maven-plugin</artifactId>
  12. <version>1.3.6</version>
  13. <configuration>
  14. <repository>${docker.image.prefix}/${project.artifactId}</repository>
  15. <buildArgs>
  16. <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
  17. </buildArgs>
  18. </configuration>
  19. </plugin>
  20. </plugins>
  21. </build>

3、右击选择项目-->run as-->maven build...,输入如下命令,进行打包

  1. install dockerfile:build

观察控制台,出现如下信息,标识打包成功

  1. [INFO]
  2. [INFO] Step 1/5 : FROM openjdk:8-jdk-alpine
  3. [INFO]
  4. [INFO] Pulling from library/openjdk
  5. [INFO] Digest: sha256:94792824df2df33402f201713f932b58cb9de94a0cd524164a0f2283343547b3
  6. [INFO] Status: Image is up to date for openjdk:8-jdk-alpine
  7. [INFO] ---> a3562aa0b991
  8. [INFO] Step 2/5 : VOLUME /tmp
  9. [INFO]
  10. [INFO] ---> Using cache
  11. [INFO] ---> a748cdf82dd0
  12. [INFO] Step 3/5 : ARG JAR_FILE
  13. [INFO]
  14. [INFO] ---> Using cache
  15. [INFO] ---> 67055e1963cf
  16. [INFO] Step 4/5 : COPY ${JAR_FILE} app.jar
  17. [INFO]
  18. [INFO] ---> 6caed43f4c12
  19. [INFO] Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
  20. [INFO]
  21. [INFO] ---> Running in 07aa2ea9d650
  22. [INFO] Removing intermediate container 07aa2ea9d650
  23. [INFO] ---> 2bfe8f5c564f
  24. [INFO] Successfully built 2bfe8f5c564f
  25. [INFO] Successfully tagged yunbo/yunbo-tm:latest
  26. [INFO]
  27. [INFO] Detected build of image with id 2bfe8f5c564f
  28. [INFO] Building jar: D:\YunboSpace\yunbo_online\yunbo-tm\target\docker-tm-docker-info.jar
  29. [INFO] Successfully built yunbo/yunbo-tm:latest
  30. [INFO] ------------------------------------------------------------------------
  31. [INFO] BUILD SUCCESS
  32. [INFO] ------------------------------------------------------------------------
  33. [INFO] Total time: 22.996s
  34. [INFO] Finished at: Wed Sep 25 14:42:33 CST 2019
  35. [INFO] Final Memory: 50M/579M
  36. [INFO] ------------------------------------------------------------------------

4、本地查看镜像,可以发现已上传至本地docker中,执行如下命令,先登录远程阿里云镜像中心,然后将镜像推送过去

  1. docker login --username=xxxxxxxxxx@126.com registry.cn-shanghai.aliyuncs.com
  2.  
  3. docker tag 2bfe8f5c564f registry.cn-shanghai.aliyuncs.com/junjun_space/junjun_store:demo-v1.0
  4.  
  5. docker push registry.cn-shanghai.aliyuncs.com/junjun_space/junjun_store:demo-v1.0

5、登录阿里云服务,进行镜像拉取,并启动

  1. docker pull registry.cn-shanghai.aliyuncs.com/junjun_space/junjun_store:demo-v1.0
  2.  
  3. docker run -d --name demo-server -p 8761:8761 f6099ee6f4b6

docker打包项目部署的更多相关文章

  1. 使用.NET 6开发TodoList应用(30)——实现Docker打包和部署

    系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 .NET 6 Web API应用使用最多的场景是作为后端微服务应用,在实际的项目中,我们一般都是通过将应用程序打包成docke ...

  2. docker 实战-项目部署

    前面学习了 docker 的命令和实际的用法,现在来实战一下.编排一个服务,也就是项目部署. 目前我们在一个闭源环境下工作,介绍一些工作流程和部署项目的方法. 该工作流程比较特殊 所谓闭源环境就是 没 ...

  3. docker打包项目

    nginx镜像制作实战 docker容器的主业 docker理念里,容器启动时,应当为它指定主业是什么,如nginx容器主业就是nginx代理服务,tomcat容器就是web服务等等 1.容器创建时, ...

  4. Ubuntu中安装jenkins+docker,实现项目部署

    本人对于linux系统是个小白,恰逢公司新框架需要docker+jenkins部署项目,所以通过同事口述+一顿乱查,终于实现在虚拟机上搭建的ubuntu系统中 实现jenkins +docker 自动 ...

  5. Maven 打包项目 部署到服务器 重启服务 插件

    1.maven插件wagon-maven-plugin自动部署远程Linux服务器  (http://xxgblog.com/2015/10/23/wagon-maven-plugin/) <p ...

  6. Docker Compose 项目打包部署

    Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一 ...

  7. Docker 打包 部署

    Docker 打包 部署 一贯的开场白,大家好: 开始学习Spring Boot ,同时也再学习 Maven 自动化构建.  项目的部署环境是 Linux 服务器,Docker容器. 之所以写这篇博客 ...

  8. 将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定

    1.前言 前段时间,自己搞了个阿里云的服务器.想自己在上面折腾,但是不想因为自己瞎折腾而污染了现有的环境.毕竟,现在的阿里云已经没有免费的快照服务了.要想还原的话,最简单的办法就是重新装系统.而一旦重 ...

  9. Docker使用jenkins部署java项目到远程linux(三)

    实现功能:从本地提交代码到gogs上,本地的代码会被检测一遍 如果检测通过才能commit成功 然后可以继续执行push命令 .push后在gogs上使用web钩子自动推送到jenkins触发构建,j ...

随机推荐

  1. editormd 富文本编辑器转 html

    // html <div id="markdown-view"> <textarea id="markdownView" style=&quo ...

  2. SIP协议入门:初学者必须明白的几个重要概念

    SIP协议初学者必须明白的几个重要概念 http://blog.sina.com.cn/s/blog_60e1d7bb0100f6er.html 一. SIP协议的分层结构 SIP是一个分层结构协议, ...

  3. SIP中From ,Contact, Via 和 Record-Route/Route

    转载:http://eadgar.blogbus.com/logs/374635.html 注意:以下内容适用于SIP消息中,在具体的应用环境中,例如IMS,每个消息头都有其他独特的意义,但不会和以下 ...

  4. 在vue中引用echarts导致Cannot read property getAttribute of null ?

    报错信息如下: 之前一直用echarts没有出现过这个问题,所以当这个问题出现时我就开始了各种查,试了几种方法依旧报错,比如: 1.在mounted() {},写成如下形式:(依旧报错) this.$ ...

  5. Jerry Wang在SAP社区上获得的徽章

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  6. Java Object对象中的wait,notify,notifyAll的理解

    wait,notify,notifyAll 是定义在Object类的实例方法,用于控制线程状态,在线程协作时,大家都会用到notify()或者notifyAll()方法,其中wait与notify是j ...

  7. Computer Vision_2_Active Shape Models:Active Shape Models-Their Training and Application——1995

    此为计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面. 1. Active Appearance Models 活动表观模型和活动轮廓模型基本思想来源 Snake,现在 ...

  8. Django Setting文件配置和简单的创建数据库字段

    Django Settings文件配置 静态文件配置 STATIC_URL = '/static/' # 静态文件配置 STATICFILES_DIRS = [ os.path.join(BASE_D ...

  9. C#中 委托和事件的关系

    首先,委托 是一个好东西.按我的理解,委托 是针对 方法 的更小粒度的抽象.比较interface,他精简了一些代码.使得 订阅-通知 (观察者模式)的实现变得非常简洁. 关于事件,我最初的理解是:事 ...

  10. Spring入门篇——第4章 Spring Bean装配(下)

    第4章 Spring Bean装配(下) 介绍Bean的注解实现,Autowired注解说明,基于java的容器注解说明,以及Spring对JSR支持的说明 4-1 Spring Bean装配之Bea ...