美文网首页
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