Docker中Java基础镜像OpenJDK和OracleJDK使用方法

 更新时间:2024年06月18日 08:55:48   作者:闫小甲  
OpenJDK是Java社区的核心项目,由全球各地的开发者共同参与开发和维护,OracleJDK在OpenJDK的基础上添加了一些商业功能和工具,这篇文章主要给大家介绍了关于Docker中Java基础镜像OpenJDK和OracleJDK使用方法的相关资料,需要的朋友可以参考下

前言

Docker中的Java基础镜像主要围绕OpenJDK和Oracle JDK两个主流的Java开发环境,提供了多个版本以适应不同的项目需求。
以下是一些常用的Java基础镜像版本及其使用方法:

OpenJDK镜像

  • openjdk:8 - Java 8版本,非常广泛使用的版本,适用于需要Java 8特性的项目。
  • openjdk:11 - Java 11是LTS(长期支持)版本,推荐用于新项目的开发。
  • openjdk:17 - 最新的LTS版本(截至我知识更新时),提供最新特性和性能改进。

Oracle JDK镜像

虽然Oracle JDK镜像不如OpenJDK常见,但也有官方或社区维护的版本,如:

  • oraclelinux:7-jdk8 或 oracle/java:8 (注意:具体命名可能会随时间变化,请以Docker Hub上的实际命名为准)
  • oraclelinux:7-jdk11
  • oraclelinux:8-jdk17

使用方法

  • 拉取镜像:首先,你需要从Docker Hub或其他镜像仓库拉取所需的Java镜像。例如,要拉取Java 8的OpenJDK镜像,可以使用以下命令:

    docker pull openjdk:8
    
  • 编写Dockerfile:接下来,创建一个Dockerfile来定义你的Java应用容器。以下是一个简单的例子,基于openjdk:8镜像构建一个应用容器:

    FROM openjdk:8
    COPY . /usr/src/myapp
    WORKDIR /usr/src/myapp
    RUN javac Main.java
    CMD ["java", "Main"]
    

    这个例子中,首先指定了基础镜像为openjdk:8,然后将当前目录下的所有文件复制到容器的/usr/src/myapp目录下,设置工作目录,并编译Java程序,最后定义了容器启动时运行的命令。

  • 构建镜像:在包含Dockerfile的目录下,运行以下命令来构建你的应用镜像:

    docker build -t my-java-app .
    
  • 运行容器:构建完成后,你可以使用以下命令运行你的Java应用容器:

    docker run -it --name my-running-app my-java-app
    

请根据你的具体需求选择合适的Java镜像版本,并相应调整Dockerfile中的指令。记得检查最新镜像标签,因为随着时间的推移,会有新的版本发布,旧版本可能不再维护。

附:Oracle JDK 和 OpenJDK的区别

Oracle JDK和OpenJDK是两个Java开发工具包(JDK)的发行版,它们之间有一些关键的区别。这两个发行版都提供了进行Java开发所需的工具和库,但在许可、支持和更新方面存在一些差异。

  • 1.许可:
    • Oracle JDK:在过去,Oracle JDK是在商业许可下提供的。从JDK 11(2018年9月)开始,Oracle改变了其许可模式。Oracle JDK现在采用订阅模型,用户需要为特定版本(例如JDK 11)之后的商业支持和更新付费。
    • OpenJDK:另一方面,OpenJDK具有开源许可证(GNU通用公共许可证第2版,并带有Classpath例外),允许自由使用、分发和修改源代码。
  • 2.支持:
    • Oracle JDK:采用订阅模型,Oracle为Oracle JDK提供商业支持和长期更新。这包括修复错误、安全补丁和其他更新,但需要付费订阅。
    • OpenJDK:OpenJDK通常由社区推动,虽然有组织和供应商提供OpenJDK版本的支持,但并不是由Oracle直接提供。支持和更新的程度可能因涉及的组织或供应商而异。
  • 3.更新:
    • Oracle JDK:Oracle通常为其JDK提供定期更新和长期支持(LTS)版本。但是,对于JDK 11之后的LTS版本,更新和支持可能需要商业订阅。
    • OpenJDK:OpenJDK也会从社区获得定期更新,但具体发行版或供应商可能会因此而异。
  • 4.TCK(技术兼容性测试套件):
    • Oracle JDK:Oracle JDK经过使用Java技术兼容性测试套件(TCK)的兼容性测试,以确保符合Java规范。
    • OpenJDK:OpenJDK可以从源代码编译,并经过相同的TCK测试以实现兼容性。某些发行版也可能通过了TCK测试,提供了与Java平台兼容的保证。

总之,Oracle JDK过去是商业许可下的JDK,但已转向订阅模型。另一方面,OpenJDK是开源的且免费提供。这两个发行版都可以用于Java开发,但选择可能取决于许可要求、支持需求和对开源软件的偏好。由于其开源特性和社区驱动的开发,许多开发人员和组织已转向使用OpenJDK或其他基于OpenJDK的发行版。

总结

到此这篇关于Docker中Java基础镜像OpenJDK和OracleJDK使用方法的文章就介绍到这了,更多相关Java基础镜像OpenJDK和OracleJDK内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 查看docker镜像中文件的方法

    查看docker镜像中文件的方法

    在本篇文章里小编给各位分享的是关于查看docker镜像中文件的方法,有兴趣的朋友们可以参考学习下。
    2020-03-03
  • 关于docker compose安装redis集群的问题(集群扩容、集群收缩)

    关于docker compose安装redis集群的问题(集群扩容、集群收缩)

    这篇文章主要介绍了docker compose安装redis集群、集群扩容、集群收缩,主要包括redis配置信息模板,编写批量生成配置文件脚本的相关命令,需要的朋友参考下吧
    2022-03-03
  • Docker容器处于Removal in process无法删除问题及解决

    Docker容器处于Removal in process无法删除问题及解决

    这篇文章主要介绍了Docker容器处于Removal in process无法删除问题及解决方案,具有很好的参考价值,希望对大家有所帮助。
    2023-07-07
  • 如何用Docker快速部署Spug自动化运维平台

    如何用Docker快速部署Spug自动化运维平台

    Spug是面向中小企业的轻量级无Agent自动化运维平台,集成主机管理、批量执行、文件传输、任务计划、配置监控及多渠道报警功能,基于AntDesign设计,开源免费,支持Docker部署与初始化管理员账户
    2025-07-07
  • 修改Docker镜像仓库为阿里云镜像或163镜像的实现

    修改Docker镜像仓库为阿里云镜像或163镜像的实现

    docker本身的仓库非常慢,但是国内有阿里云的镜像仓库非常快,本文主要介绍了修改Docker镜像仓库为阿里云镜像或163镜像的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Docker镜像导出与导入与拷贝实例分析

    Docker镜像导出与导入与拷贝实例分析

    在本篇文章里小编给大家整理的是关于Docker镜像导出与导入与拷贝实例分析,有需要的朋友们可以参考下。
    2020-02-02
  • Docker中使用gosu的方法详解

    Docker中使用gosu的方法详解

    在Docker镜像中启动服务时,我们通常不希望以root身份运行主进程,sudogosu是一个非常轻量的工具,功能类似sudo,但不会产生额外进程,非常适合在Docker容器中用来切换用户,本文给大家介绍Docker中使用gosu的方法,感兴趣的朋友一起看看吧
    2025-10-10
  • IDEA整合Docker的实现步骤

    IDEA整合Docker的实现步骤

    本文主要介绍了IDEA整合Docker的实现步骤,主要设置了远程连接,插件以及配置信息等,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 常用的Docker命令及示例汇总分析

    常用的Docker命令及示例汇总分析

    这篇文章主要介绍了常用的Docker命令及示例的汇总分析,附含源码示例分析,有需要的朋友可以借鉴参考下,希望可以对广大读者有所帮助
    2021-09-09
  • Docker自定义镜像的实现步骤(SpringBoot程序为例)

    Docker自定义镜像的实现步骤(SpringBoot程序为例)

    Docker自定义镜像指的是用户根据自己的需求和规范,使用Dockerfile或其他方式创建的一个Docker镜像,本文给大家介绍了Docker自定义镜像的实现步骤,文中通过图文讲解的非常详细,需要的朋友可以参考下
    2024-06-06

最新评论