docker打包jar为docker镜像

1、使用Dockerfile打镜像

将spring boot应用打包成jar包放置在/app/applcation路径中

编写dockerfile文件,内容参考如下:

# Docker image for springboot file run
# VERSION 0.0.1
# Author: yanjl
# 基础镜像使用java
FROM s390x/adoptopenjdk:8u292-b10-jdk-openj9-0.26.0
# 作者
MAINTAINER yanjl <yanjlxue@outlook.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /app/application 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /app/application
# 将jar包添加到容器中并更名为hello.jar #前者为打包的文件 后者为修改后的自定义名字
ADD /app/application/hello.jar /app/application/hello.jar
# 运行jar包
RUN bash -c 'touch /app/application/hello.jar'
# -Djava.security.egd=file:/dev/./urandom为指定随机数生成器,可加快启动
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/application/hello.jar"]
# 暴露端口
EXPOSE 8099

项目需要java环境,可以根据自己的操作系统选择合适的jdk,可以再dockerhub官方仓库查询对应的镜像,

挂载卷可以将容器内信息映射到宿主机中,方便查阅

构建镜像,命令最后有一个点,表示当前目录,-f为指定dockerfile,-t命名镜像

docker build -f Dockerfile -t hello:1001 .

查看当前镜像

docker images

启动容器,可以使用docker logs hello 查看日志输出,-p参数表示端口映射(宿主机端口:容器内端口,-d为指定镜像文件)

docker run -p 8099:8099 -d hello:1001 --name hello

使用docker ps -a查看当前容器运行状态,-a参数表示查看所有容器(包括已终止),不加则只会显示运行中容器

docker ps -a

若要删除镜像,需要先停止容器,再删除容器,再删除镜像即可

# 停止容器
docker stop 容器名(或id)
# 删除容器
docker rm 容器名(或id)
# 删除镜像
docker rmi 镜像名:版本号(或id)

最新文章

  1. Squirrel: 通用SQL、NoSQL客户端
  2. JSP基础——属性保存范围和request对象
  3. Sae上传war包找不到编译文件
  4. shell中的case语句
  5. Qt Model/View(官方翻译,图文并茂)
  6. JavaScript:表单验证模型
  7. bug_ _fragment_“The specified child already has a parent. You must call removeView"的解决以及产生的原因
  8. JavaScript学习笔记 -- 带参数arguments的函数的用法
  9. Ubuntu 软件包管理详解
  10. 关于SQL中的Update语句
  11. 有两个数据库A和B,数据库A中有表a,如何把表a映射到数据库B中,sql 2005
  12. Lucas,.net Web框架
  13. Error parsing column 8 (IsRecommended=0 - SByte) Dapper查询mysql数据库可空的tinyint(1)一个错误
  14. 如何用shell脚本取出服务器图片
  15. ServletContainerInitializer初始化器
  16. debian9.6修改系统语言
  17. 【数学建模】day11-典型相关分析
  18. Extjs4.2+webAPI+EF实现分页以及webapi的数据传值
  19. 了解MQ
  20. PAT 1035 Password

热门文章

  1. bbs大作业
  2. Emacs Client启动方式,在WSL像VIM一样操作
  3. .net NPOI Excel导入:时间格式2022/5/26导入变成26-5月-2022
  4. Spring Boot整合JSP --CRUD
  5. Linux基础之用户、组和权限管理
  6. CF1250C Trip to Saint Petersburg
  7. GPIO 和中断控制 LED 的状态
  8. 干货!超实用的 Linux 初始化脚本
  9. C#判断useragent是pc还是手机端
  10. 四种语言刷算法之47. 全排列 II