使用docker构建jdk17镜像

1、修改docker镜像源

ii、添加镜像源

 vim /etc/docker/daemon.json 

{
  "registry-mirrors": [
    "https://l10nt4hq.mirror.aliyuncs.com",
    "http://hub-mirror.c.163.com",
    "http://mirrors.ustc.edu.cn/",
    "http://mirror.azure.cn/"
  ]
}

ii、重启docker

systemctl restart docker

iii、查看镜像源是否添加成功

docker info | grep -i "mirror

2、下载 jdk17 文件

 wget https://download.oracle.com/java/17/archive/jdk-17.0.11_linux-x64_bin.tar.gz

3、下载字体

simsun.ttc(微软雅黑)

msyh.ttc (常规)
msyhbd.ttc (粗体)
msyhl.ttc(轻体)

直接下载:https://songzixian.lanzouq.com/isrrn179cr1i ,密码:fyxy

4、编写DockerFile文件

# 使用Linux发行版作为基础镜像
FROM centos:7

# 镜像作者
MAINTAINER zxx

#字体库安装
RUN yum -y install fontconfig
RUN mkdir -p /usr/share/fonts/
COPY ./font/simsun.ttc /usr/share/fonts/
COPY ./font/msyh.ttc /usr/share/fonts/
COPY ./font/msyhbd.ttc /usr/share/fonts/
COPY ./font/msyhl.ttc /usr/share/fonts/
RUN  chmod 755 /usr/share/fonts/*
RUN fc-cache -fv

#JDK安装
# 解压JDK压缩包
ADD jdk-17_linux-x64_bin.tar.gz /usr/local
# 设置JAVA_HOME环境变量
ENV JAVA_HOME=/usr/local/jdk-17.0.11/
# 将JDK的bin目录添加到PATH环境变量中
ENV CLASSPATH=.:$JAVA_HOME/lib/jrt-fs.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$PATH:$JAVA_HOME/bin

#校准容器时间
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/timezone

#切换容器字体编码
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
RUN echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8

#回到主目录, 授权root
WORKDIR /
USER root

5、Dockerfile所在同级目录执行构建镜像命令

docker build -t='jdk:17.0.11' .

6、查看构建结果

docker images

7、启动镜像

docker run -di --name jdk17 -d jdk:17.0.11

8、进入容器

docker exec -it jdk17 /bin/bash

9、查看版本 java -version

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以使用以下命令来拉取jdk8镜像docker pull openjava:8。\[1\]这个命令会从Docker Hub上拉取openjava仓库中的jdk8镜像。您也可以使用docker images命令来查看已经安装的镜像,确认jdk8已经成功安装。\[1\] 如果您需要使用Dockerfile来构建镜像,可以参考以下内容:\[2\] ``` #1.指定基础镜像,并且必须是第一条指令 FROM centos:7 #2.指明该镜像的作者和其电子邮件 MAINTAINER hj #3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录 WORKDIR /usr/local/java #4.一个复制命令,把jdk安装文件复制到镜像中,语法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相对路径 ADD jdk-8u341-linux-x64.tar.gz /usr/local/java/ #5.配置环境变量 ENV JAVA_HOME=/usr/local/java/jdk1.8.0_341 ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH=$JAVA_HOME/bin:$PATH #容器启动时需要执行的命令 CMD \["java","-version"\] #可以安装一些工具进入镜像,-y不需要交互自动安装很重要的参数,不然会卡住终止 #RUN \["yum","install","-y","gcc"\] ``` 这个Dockerfile中定义了基于centos:7镜像构建过程,包括复制jdk安装文件、配置环境变量等步骤。最后的CMD命令会在容器启动时执行java -version命令,以验证jdk安装是否成功。您可以根据需要进行修改和定制。\[2\] #### 引用[.reference_title] - *1* [Docker拉取jdk8镜像失败解决方案](https://blog.csdn.net/qq_18402949/article/details/128071860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [dockerjdk镜像](https://blog.csdn.net/qq_34122638/article/details/127359027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

、ゝ回眸相視笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值