美文网首页
Docker之JDK基础镜像

Docker之JDK基础镜像

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2023-10-16 01:11 被阅读0次

    经常部署jar包,用的最多的就是jdk8的基础镜像了。但是今年中的时候,DockerHub突然访问不了了。有的说是国内的事,要墙;有的说是国外主动的,要制裁我们。不管什么原因,它是影响了我看文档。
    而对于选择JDK镜像(一般用openjdk,我用的8)来说,面临了2大问题:

      1. 网页打不开,看不了文档,拉取时选版本难办;
      1. 官方的openjdk已经不建议生产环境使用了,而且jdk8版本也不是最新的,不及时
        针对上面这2个问题,记录一下解决办法。

    1. 网页打不开的问题

    这个问题,最开始想找国内的大厂网页版。但是没找到,全是镜像加速地址。虽然解决不了根本问题,但是还是要记录一下这些加速地址,配置Docker的时候要用。

    另外:七牛云Docker 中国官方镜像好像已经不能用了。
    注意、注意、注意:
    虽然大厂的镜像地址都不能用,但是找到了一个个人的镜像网站,同步还挺及时,可以查看文档。感谢这个大佬。
    个人镜像地址:https://hub.axlinux.top/

    2. JDK8镜像选择

    虽然官方的openjdk不建议生产环境使用了,但是还有很多其他版本可以代替的。不说别的,国内的2个大哥都有自己的openjdk产品,而且还丰富了功能,兼容官方的。

    1. 阿里巴巴
      阿里的jdk产品名字Alibaba Dragonwell它是这样介绍的:Alibaba Dragonwell 是一款免费的, 生产就绪型Open JDK 发行版,提供长期支持,包括性能增强和安全修复。阿里巴巴拥有最丰富的Java应用场景,覆盖电商,金融,物流等众多领域,世界上最大的Java用户之一。Alibaba Dragonwell作为Java应用的基石,支撑了阿里经济体内所有的Java业务。而且指出了 Alibaba Dragonwell是OpenJDK在生产环境的可靠替代品。

    2. 腾讯
      腾讯的jdk产品名字Kona,它是这样介绍的:腾讯 Kona 是一个基于 OpenJDK 定制的,生产环境可用,高性能,安全稳定,兼容多种运行平台的 OpenJDK 开源发行版本。提供企业级 JDK 服务,由腾讯专业技术团队提供技术维护、性能优化及安全保障等服务,为您提供最优的 Java 云生产环境及解决方案。

    3. Eclipse
      作为Java开发IDE的半壁江山,Eclipse当然有自己的jdk产品Eclipse Temurin,它是这样介绍的:Eclipse Temurin 是由基于 OpenJDK 的开源 Java SE 产生的构建版本。Temurin 适用于 广泛的平台 以及诸多 Java SE 版本。以下列出了推荐用于生产的最新版本,并且定期由 Adoptium 社区发布更新和支持。迁移帮助、容器镜像和包安装指南可在文档区获得。
      我就用的这个,因为我用eclipse。当然还有其他原因:

      • 最接近openjdk了,基本原滋原味
      • 各种平台基本都支持,而且更新及时,随着openjdk发布版本而更新

      用这个镜像需要注意一点:时区问题,语言问题,毕竟这是国外的

    4. 亚马逊
      亚马逊的产品名字Amazon Corretto,可以点进去看看介绍,也不错,和Eclipse那个差不多。

    当然,除了上面这几个还有其他的,比如Azul的azul,IBM的Semeru,华为的毕昇JDK(openEuler)等。

    3. Eclipse Temurin简单使用

    主要更改了一下时区,切换了一下中文

    FROM eclipse-temurin:8-jre
    LABEL com.test.image.authors="test"
    # 设定时区、中文
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
    && apt-get update && apt-get install -y locales && locale-gen zh_CN.UTF-8 \
    && update-locale LANG=zh_CN.UTF-8 && rm -rf /var/lib/apt/lists/*
    ENV LANG=zh_CN.UTF-8 \
        LANGUAGE=zh_CN:zh \
        LC_ALL=zh_CN.UTF-8
    # VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
    VOLUME /tmp
    # 将jar包添加到容器中并更名为app.jar
    ADD XXXXXX.jar app.jar
    # 运行jar包
    RUN bash -c 'touch /app.jar'
    ENTRYPOINT ["java","-jar","-Xmx2g","-Xms2g","/app.jar"]
    # 为服务暴露端口
    EXPOSE 8080
    

    如果有自己的docker镜像仓库,可以将前面部分build成一个基础镜像,毕竟每次update和设置中文也是花时间的。

    相关文章

      网友评论

          本文标题:Docker之JDK基础镜像

          本文链接:https://www.haomeiwen.com/subject/qwqxidtx.html