Docker自定义java镜像(解决java:8镜像不支持arm64/aarch64的问题)(附带Dockerfile参数介绍)

一、环境准备

arm64/aarch64的云服务器、已经安装好docker、已经安装好对应版本且可以使用的jdk、服务器上有该jdk的安装包
(如:jdk-8u311-linux-aarch64.tar.gz)

二、自定义java镜像

1.创建文件夹,上传指定jdk,编写Dockerfile文件

#创建一个文件夹放**Dockerfile和指定jdk
mkdir -p /home/docker/java
#切换到该路径
cd /home/docker/java
#创建一个Dockerfile文件
vi Dockerfile
#依赖的环境
FROM centos:7
#作者
MAINTAINER shiwei

#ADD 把java添加到容器中指定位置
ADD jdk-8u311-linux-aarch64.tar.gz /usr/docker/java

#环境配置
ENV JAVA_HOME /usr/docker/java/jdk1.8.0_311
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
ENV PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

2.打包镜像

#打包镜像 注意有后缀 .

docker build -t java:1.8 .

在这里插入图片描述

3.查看镜像

docker images

4.使用镜像创建容器,测试镜像是否正常

#创建容器并进入
docker run -it --name java-jdk-demo java:1.8 /bin/bash

# -it 终端交互式操作
# --name 给容器命名
# /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell

#然后输入   java -version   出现java版本说明容器没有问题

#退出容器
 exit

三、Dockerfile参数介绍

1.为什么将压缩包放入容器后会自动解压

Dockerfile的命令ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包

2.Dockerfile参数介绍

(1)基础

每一条保留字指令都必须为大写字母且后面要跟随至少一个参数
注释用#
每一条指令都会创建一个新的镜像层,并对镜像进行提交

(2)Docker执行DockerFile的大致流程

  • docker从基础镜像运行一个容器
  • 执行一条指令并对容器作出修改
  • 执行类似docker commit的操作提交一个新的镜像层
  • docker再基于刚提交的镜像运行一个新容器
  • 执行dockerfile中的下一条指令直到所有指令都执行完成

(3)DockerFile的保留字指令

  1. FROM:基础镜像,当前新的镜像是基于哪一个镜像的
  2. MAINTAINER:镜像的作者和作者的邮箱
  3. RUN:容器构建的时候需要运行的命令
  4. EXPOSE:当前容器对外暴露的端口
  5. WORKDIR:登录到容器后进入的目录
  6. ENV:用来在构建镜像的过程中设置环境变量
  7. ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
  8. COPY:类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置
  9. VOLUME:容器数据卷,用于数据保存和持久化工作
  10. CMD:指定一个容器启动的时候要运行的命令,可以有多个但是只有最后一个生效
  11. ENTRYPOINT:指定一个容器启动的时候要运行的命令,和CMD一样都是指定容器启动程序及参数,只追加不会替换
  12. ONBUILD:当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

四、jdk8压缩包传送门

jdk8压缩包下载
在这里插入图片描述

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用以下命令来拉取Java8镜像: ``` docker pull java:8 ``` 这将从Docker Hub上拉取官方的Java8镜像。如果您的系统是arm64/aarch64架构,而官方的Java8镜像支持该架构,您可以参考\[1\]中的博客文章,自定义一个支持arm64/aarch64架构的Java8镜像。在博客文章中,作者提供了Dockerfile参数介绍和示例,您可以根据需要进行自定义。如果您需要将镜像保存为tar归档文件,以便在无法联网的服务器上使用,可以参考\[2\]中的步骤,使用`docker save`命令保存镜像为tar文件,并使用`docker load`命令在其他服务器上加载镜像。在操作之前,您可以先创建一个目录用于存放相关文件,如\[3\]所示。 #### 引用[.reference_title] - *1* *3* [在centos7下docker 制作 java8镜像,上传到阿里云镜像仓库](https://blog.csdn.net/lizhou828/article/details/126920577)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [docker拉取使用java环境](https://blog.csdn.net/u013301376/article/details/112375135)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值