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镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot Docker打包工具小结

    Spring Boot Docker打包工具小结

    本文对几种常见的Spring Boot Docker打包工具进行了简单总结,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • docker中Overlay网络的使用小结

    docker中Overlay网络的使用小结

    Docker Overlay网络是跨主机通信的虚拟网络驱动,基于分布式存储实现动态路由与安全加密,本文就来详细的介绍一下docker中Overlay网络的实现,具有一定的参考价值,感兴趣的可以了解一下
    2025-09-09
  • Docker安装RabbitMQ AMQP协议及重要角色

    Docker安装RabbitMQ AMQP协议及重要角色

    这篇文章主要为大家介绍了Docker安装RabbitMQ AMQP协议和主要角色详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • SpringCloud与Docker的集成原理解析

    SpringCloud与Docker的集成原理解析

    Docker的核心原理是通过将应用程序及其所有依赖项封装到独立的容器中,实现了跨平台、一致性和可移植性,这篇文章主要介绍了SpringCloud-Docker原理解析,需要的朋友可以参考下
    2024-02-02
  • Docker镜像压缩与优化操作

    Docker镜像压缩与优化操作

    这篇文章主要介绍了Docker镜像压缩与优化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker下mysql设置字符集的方法

    Docker下mysql设置字符集的方法

    这篇文章主要介绍了Docker下的mysql设置字符集的方法,需要的朋友可以参考下
    2018-03-03
  • Docker构建文件Dockerfile简单入门

    Docker构建文件Dockerfile简单入门

    这篇文章主要介绍了Docker构建文件Dockerfile简单入门,需要的朋友可以参考下
    2022-04-04
  • docker容器中切换用户,提示权限不足的解决

    docker容器中切换用户,提示权限不足的解决

    这篇文章主要介绍了docker容器中切换用户,提示权限不足的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker容器网络基础概述

    Docker容器网络基础概述

    这篇文章主要介绍了Docker容器网络基础概述,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Docker Cloud实现部署应用操作详解

    Docker Cloud实现部署应用操作详解

    这篇文章主要介绍了Docker Cloud实现部署应用操作,较为详细的分析了Docker Cloud部署应用的步骤、命令、实现方法及相关操作注意事项,需要的朋友可以参考下
    2018-06-06

最新评论