Docker构建Jar镜像的方法实现

 更新时间:2023年10月10日 11:51:48   作者:baihb1024  
本文主要介绍了Docker构建Jar镜像的方法实现,主要包括编写Dockerfile、构建镜像、测试镜像等操作,具有一定的参考价值,感兴趣的可以了解一下

一、创建 docker 目录

/usr/local/docker

二、将项目打包上传到目录

# Jar 包
/usr/local/docker/app.jar
# 配置文件
/usr/local/docker/config/application.yml

三、在目录下创建 Dockerfile 文件

FROM openjdk:8-jre
# 将 jar 包添加到容器中 , tar 类型文件会自动解压(网络压缩资源不会被解压) , 可以访问网络资源 , 类似 wget
ADD app.jar /usr/local/app.jar
# 功能和 ADD 相同 , 不会自动解压文件 , 也不能访问网络资源
# COPY ./config/ /usr/local/config
# 配置环境变量
# ENV JAVA_HOME=/usr/local/java/jdk-8
# ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# ENV PATH=$JAVA_HOME/bin:$PATH
# 切换工作目录 , 相当于 cd
WORKDIR /usr/local
# 映射端口
EXPOSE 80
# ENTRYPOINT 或 CMD 只会执行一次 , 会覆盖之前的 ENTRYPOINT 或 CMD 命令
ENTRYPOINT ["java" , "-jar" , "app.jar"]

四、构建镜像

docker build -t app:1.0 .

五、创建并启动容器

docker run --name app -p 80:80 -v ./config/:/usr/local/config -d app:1.0

六、ENTRYPOINT 和 CMD 区别

需求:想追加一个命令 -l , 期望执行 ls -al

1. CMD

docker run 会覆盖 CMD 后面的命令

FROM centos
CMD ["ls","-a"]

此时命令在 docker 启动后自己执行, 我们可以在命令行启动 docker 镜像时, 执行其他命令行参数, 覆盖默认的 CMD

$ docker run demo -l
此时会报错 , '-l' 替换了 'ls -a' 命令 , 没有这个命令导致报错

2. ENTRYPOINT

docker run 不会覆盖 entrypoint 后面的命令,需要使用 --entrypoint 命令覆盖

$ docker run --entrypoint demo -l
此时会报错 , '-l' 替换了 'ls -a' 命令 , 没有这个命令导致报错
$ docker run demo -l
成功执行命令 'ls -al' 

到此这篇关于Docker构建Jar镜像的方法实现的文章就介绍到这了,更多相关Docker构建Jar镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 被弃用的 Docker 会被 Podman 取代吗

    被弃用的 Docker 会被 Podman 取代吗

    Docker 是一种以容器化的方式打包、分发和部署应用程序的方式。自 2013 年 3 月 13 日初始版本发布以来,Docker 已成为容器业界的事实标准。而Kubernetes 是一款由 Google 开发的开源容器编排系统
    2020-12-12
  • DOCKERFILE学习及使用注意事项

    DOCKERFILE学习及使用注意事项

    Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。一般的,Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令
    2017-02-02
  • 查看docker中运行的JVM参数问题及解决方法

    查看docker中运行的JVM参数问题及解决方法

    这篇文章主要介绍了查看docker中运行的JVM参数,方法一使用的是jcmd命令,方法二是jinfo命令,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2022-04-04
  • docker部署nodejs开发环境详细步骤(基础示例篇)

    docker部署nodejs开发环境详细步骤(基础示例篇)

    这篇文章主要给大家介绍了docker部署nodejs开发环境详细步骤,docker是一个开源的应用容器引擎,可以为我们提供安全、可移植、可重复的自动化部署的方式,需要的朋友可以参考下
    2023-10-10
  • 浅谈Docker-compose中的depends_on顺序的问题解决

    浅谈Docker-compose中的depends_on顺序的问题解决

    本文主要介绍了浅谈Docker-compose中的depends_on顺序的问题解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • docker打包镜像后EasyExcel报错,dockerfile缺少字体的解决

    docker打包镜像后EasyExcel报错,dockerfile缺少字体的解决

    解决Docker打包镜像后EasyExcel报错的问题:1. Dockerfile增加字体配置;2. 使用EasyExcel的write时添加"inMemory"参数为true,开启内存处理模式(不推荐,1W数据以内可以考虑)
    2025-02-02
  • Ubuntu 搭建基于Docker的LNMP+Redis的开发环境(图文)

    Ubuntu 搭建基于Docker的LNMP+Redis的开发环境(图文)

    这篇文章主要介绍了Ubuntu 搭建基于Docker的LNMP+Redis的开发环境的相关资料,这里详细介绍如何搭建的步骤,并附图文,需要的朋友可以参考下
    2016-12-12
  • CentOS服务器部署Docker+Jenkins持续集成环境的方法

    CentOS服务器部署Docker+Jenkins持续集成环境的方法

    本文详细介绍在CentOS服务器上部署Docker和Jenkins持续集成环境的步骤,涵盖了准备工作、安装Docker、配置Docker镜像加速、安装Jenkins、配置Jenkins以及集成Docker与Jenkins,通过这些步骤,读者可以实现代码的持续集成与快速部署,提高软件开发效率,感兴趣的朋友一起看看吧
    2025-02-02
  • Docker镜像+nginx 部署 vue 项目的方法

    Docker镜像+nginx 部署 vue 项目的方法

    这篇文章主要介绍了Docker镜像+nginx 部署 vue 项目的方法,帮助大家更好的使用docke镜像,感兴趣的朋友可以了解下
    2020-10-10
  • Centos7下安装Docker Engine

    Centos7下安装Docker Engine

    这篇文章主要介绍了Centos7下安装Docker Engine的相关资料,非常不错,具有参考借鉴价值,需要的朋友参考下
    2016-12-12

最新评论