当前位置: 首页 > news >正文

docker构建jdk11

# 建立一个新的镜像文件,配置模板:新建立的镜像是以centos为基础模板 # 因为jdk必须运行在操作系统之上 FROM centos:7.9.2009 # 作者名 MAINTAINER yuanhang # 创建一个新目录来存储jdk文件 RUN mkdir /usr/local/java #将jdk压缩文件复制到镜像中,它将自动解压缩tar文件 ADD jdk-11_linux-x64_bin.tar.gz /usr/local/java/ # 设置时区 RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ADD ./CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo RUN yum clean all RUN yum makecache RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN yum install dejavu-sans-fonts fontconfig -y # 设置环境变量 ENV JAVA_HOME /usr/local/java/jdk-11 ENV PATH $JAVA_HOME/bin:$PATH # VOLUME 指定了临时文件目录为/tmp # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp
docker build -f ./Dockerfile_jdk -t java:11 .

测试

docker run -it --rm java:11 java -version

docker 镜像

https://docker.m.daocloud.io

centos7.9 yum源 CentOS-Base.repo

# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base - mirrors.aliyun.com failovermethod=priority baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates - mirrors.aliyun.com failovermethod=priority baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/updates/$basearch/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - mirrors.aliyun.com failovermethod=priority baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/extras/$basearch/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus - mirrors.aliyun.com failovermethod=priority baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib - mirrors.aliyun.com failovermethod=priority baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7

jdk21镜像

# 建立一个新的镜像文件,配置模板:新建立的镜像是以centos为基础模板 # 因为jdk必须运行在操作系统之上 FROM centos:7.9.2009 # 作者名 MAINTAINER yuanhang # 设置时区 RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ADD ./CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo RUN yum clean all RUN yum makecache RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN yum install dejavu-sans-fonts fontconfig tar gzip -y # 创建一个新目录来存储jdk文件 RUN mkdir /usr/local/java # 复制JDK安装包到容器中 COPY jdk-21_linux-x64_bin.tar.gz /usr/local/java/jdk-21_linux-x64_bin.tar.gz # 解压JDK安装包 RUN cd /usr/local/java/ && \ tar -zxzf jdk-21_linux-x64_bin.tar.gz && \ rm jdk-21_linux-x64_bin.tar.gz && \ alternatives --install /usr/bin/java java /usr/local/java/jdk-21.0.6/bin/java 2 && \ alternatives --set java /usr/local/java/jdk-21.0.6/bin/java # 设置环境变量 ENV JAVA_HOME /usr/local/java/jdk-21.0.6 ENV PATH $JAVA_HOME/bin:$PATH RUN source /etc/profile # 验证安装 查看jdk解压的路径 RUN cd /usr/local/java/ && pwd && ls RUN java -version # VOLUME 指定了临时文件目录为/tmp # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp

带有微软雅黑字体的jdk11

# 建立一个新的镜像文件,配置模板:新建立的镜像是以centos为基础模板 # 因为jdk必须运行在操作系统之上 FROM centos:7.9.2009 # 作者名 MAINTAINER yuanhang # 创建一个新目录来存储jdk文件 RUN mkdir /usr/local/java #将jdk压缩文件复制到镜像中,它将自动解压缩tar文件 ADD jdk-11_linux-x64_bin.tar.gz /usr/local/java/ # 设置时区 RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ADD ./CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo RUN yum clean all RUN yum makecache RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 安装字体工具 RUN yum install dejavu-sans-fonts fontconfig mkfontscale -y # 创建字体目录并复制字体 RUN mkdir -p /usr/share/fonts/msyh COPY MSYH*.TTC /usr/share/fonts/msyh/ # 设置权限并更新字体缓存 RUN chmod -R 755 /usr/share/fonts/msyh && \ cd /usr/share/fonts/msyh && \ mkfontscale && \ mkfontdir && \ fc-cache -fv # 验证字体安装 RUN fc-list :lang=zh | grep "Microsoft YaHei" # 设置环境变量 ENV JAVA_HOME /usr/local/java/jdk-11 ENV PATH $JAVA_HOME/bin:$PATH # VOLUME 指定了临时文件目录为/tmp # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp

字体从 C:\Windows\Fonts 可以找到

server.sh, zgc和headdump

#!/bin/bash JAVA_OPT="-Xms24g -Xmx24g -Xss1m -XX:NewRatio=4 -XX:MaxDirectMemorySize=4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:-UseTransparentHugePages -XX:ZFragmentationLimit=20 -XX:ZCollectionInterval=10 -Xlog:gc*:stdout:time -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/yh/pojo/logs/prj/heapdump.hprof -XX:+PrintGCDetails -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom" if [[ ! -z "${NACOS_DISCOVERY_NAMESPACE}" ]]; then JAVA_OPT="${JAVA_OPT} -Dspring.cloud.nacos.discovery.namespace=${NACOS_DISCOVERY_NAMESPACE}" fi if [[ ! -z "${NACOS_DISCOVERY_SERVER_ADDR}" ]]; then JAVA_OPT="${JAVA_OPT} -Dspring.cloud.nacos.discovery.server-addr=${NACOS_DISCOVERY_SERVER_ADDR}" fi if [[ ! -z "${NACOS_CONFIG_NAMESPACE}" ]]; then JAVA_OPT="${JAVA_OPT} -Dspring.cloud.nacos.config.namespace=${NACOS_CONFIG_NAMESPACE}" fi if [[ ! -z "${NACOS_CONFIG_SERVER_ADDR}" ]]; then JAVA_OPT="${JAVA_OPT} -Dspring.cloud.nacos.config.server-addr=${NACOS_CONFIG_SERVER_ADDR}" fi if [[ ! -z "${NACOS_USERNAME}" ]]; then JAVA_OPT="${JAVA_OPT} -Dspring.cloud.nacos.username=${NACOS_USERNAME}" fi if [[ ! -z "${NACOS_PASSWORD}" ]]; then JAVA_OPT="${JAVA_OPT} -Dspring.cloud.nacos.password=${NACOS_PASSWORD}" fi POJO_SERVICE="${JAVA_OPT} -jar ${POJO_BASE_DIR}/${POJO_SERVICE_NAME}.jar" echo "-----------------------service start param:${POJO_SERVICE}-------------------------------" nohup java ${POJO_SERVICE} > /dev/null
http://www.jsqmd.com/news/1257095/

相关文章:

  • 2026 年当下,娄底可靠的圆拱侧开天窗制造厂哪家权威,打破设计界限:这个侧开天窗如何颠覆你的屋顶想象? - 行业推荐【认证官】
  • ELK+FileBeat 7.14.0版本安装、部署及使用
  • AICR:AI Code Review 从 0 到 1 的真实演进路线
  • WHO各国预期寿命影响因素分析与轻量回归预测
  • 三步解锁网易云音乐NCM加密:ncmdumpGUI让你的音乐无处不在
  • Chrome全屏截图插件终极指南:一键保存完整网页的完美解决方案
  • 仅剩73家企业获授「AI-MQ可信生成认证」:解读信通院首批认证标准,含Schema一致性校验、Exactly-Once语义推演、TraceID穿透率3大硬指标
  • HarmonyOS7 TransitionEffect 实战:组件显示隐藏的过渡动画
  • AI 版权求证:用 Andersen、Getty、Bartz 等真实裁决,拆“AI 偷画“传言
  • 深圳汽车养护服务行业GEO优化公司选型指南丨2026生成式引擎优化服务商深度测评与头部榜单解析 - 企业新闻快传
  • VLA-世界模型-TVA:具身智能的递归改进引擎(4)
  • C++ vector二维数组:从内存布局到性能优化的深度解析
  • 深圳人力资源服务行业GEO优化公司选型指南丨生成式引擎优化服务商深度测评与2026本地实践 - 小随科技
  • 完全指南:5分钟掌握免费在线EPUB编辑器EPubBuilder
  • 走进 Gang of Four 设计模式:责任链模式
  • 大模型选型生死线:幻觉率>5%即不可商用?头部金融科技公司内部评估标准首次流出
  • 专业工具完全指南:高效解决Windows Edge浏览器卸载难题的PowerShell脚本方案
  • OneMore:160+功能让OneNote变身终极笔记管理神器
  • Linux基础命令的使用
  • Adobe GenP破解工具:3分钟免费激活Adobe全家桶终极指南
  • SCMP供应链管理专家报名步骤 - 众智商学院职业教育
  • 2026年7月国内正规的焊管批发厂家哪家好,镀锌方管/球墨铸铁管/焊管,焊管直销厂家哪家好 - 品牌推荐师
  • HarmonyOS7 多媒体能力怎么放进一个页面:MediaPanelSwitcher 组合式案例解析
  • 如何安全畅玩GTA5:YimMenu保护工具终极使用指南
  • VC++串口通讯模块实战:异步I/O、环形缓冲区与工业级可靠性设计
  • 小型化工业网关机工控主板怎么选?多网口与无线扩展集成要点
  • SQLyog社区版:5分钟掌握完全免费的MySQL数据库管理终极指南
  • 如何实现30+平台自动签到:青龙面板一站式解决方案完全指南
  • 2026 年更新:武清可靠的轮式挖掘机出租厂家哪家专业,别再租昂贵设备!这台机器如何帮你省下大笔工程费? - 行业甄选官
  • windows 部署 jar包的方式