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

这篇具有很好参考价值的文章主要介绍了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 .

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

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压缩包下载
Docker自定义java镜像(解决java:8镜像不支持arm64/aarch64的问题)(附带Dockerfile参数介绍)文章来源地址https://www.toymoban.com/news/detail-490594.html

到了这里,关于Docker自定义java镜像(解决java:8镜像不支持arm64/aarch64的问题)(附带Dockerfile参数介绍)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SPEC CPU 2006 1.2 D2000 ARM64 aarch64平台 docker 环境下的编译 宿主机测试

    由于spec cpu 2006版本太老,现代操作系统gcc版本远高于gcc4.3,且tools也没有提供arm64架构程序文件,导致安装编译会报大量编译错误,难以适配。故采用docker方式尝试编译。 https://download.csdn.net/download/hknaruto/86608404 验证可用 ---------------------------------------------------------------------

    2024年02月16日
    浏览(47)
  • 注意避坑:centos7官方版镜像不支持arm架构(docker请求的映像的平台(linux/aamd64)与检测到的主机平台(linux/alm64/v8)不匹配)fauria/vsftpd

    注意是centos7 docker官方版镜像不支持arm架构(FROM centos:7),不是centos7不支持arm 今天基于fauria/vsftpd在我们的arm盒子上做了个docker镜像,但是用镜像run容器的时候提示: 翻译就是: 警告:请求的映像的平台(linux/aamd64)与检测到的主机平台(linux/alm64/v8)不匹配,并且没有请求

    2024年02月08日
    浏览(50)
  • arm64和aarch64之间的区别

    直接给出结论:arm64已经与aarch64合并,因为aarch64和arm64指的是同一件事。 AArch64是ARMv8 架构的一种执行状态。 为了更广泛地向企业领域推进,需要引入 64 位构架。同时也需要在 ARMv8 架构中引入新的 AArch64 执行状态。AArch64 不是一个单纯的 32 位 ARM 构架扩展,而是 ARMv8 内全新

    2024年02月11日
    浏览(34)
  • debian 11 arm64 aarch64 源码变异winehq arm64 笔记

    安装华为毕昇编译器 sudo apt install libc++1-13   编译tools cd tools su root export PATH=/opt/bisheng-compiler-1.3.3-aarch64-linux/bin:$PATH root@debian:/home/yeqiang/下载/src/wine/tools# ../configure CC=/opt/bisheng-compiler-1.3.3-aarch64-linux/bin/clang CXX=/opt/bisheng-compiler-1.3.3-aarch64-linux/bin/clang++ --host=aarch64-unknown-linux --wi

    2024年01月16日
    浏览(57)
  • 【Docker】MySQL 源码构建 Docker 镜像(基于 ARM 64 架构)

    以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!  公众号原文链接:MySQL 源码构建 Docker 镜像(基于 ARM 64 架构) 背景介绍 近期,笔者正推进公司 MySQL 适配 ARM 64 架构工作,由于一直使用 Docke

    2024年04月15日
    浏览(61)
  • 【docker】x86主机在docker中运行arm64镜像

    1、在x86搭建arm64 ros的开发环境。 2、宿主机:虚拟机x86_ubuntu18 3、设备:jetson agx xavier(jetpack4.6.1) jetson已安装各种软件环境 打包jeston文件系统 把U盘插到jetson,然后执行打包命令。 --exclude是排除不需要打包的文件 2、x86加载docker文件 a、打包完成后,将U盘插到pc主机 b、将文

    2024年02月05日
    浏览(46)
  • x86架构上构建arm64架构的docker镜像

    项目需要提供arm64架构上的centos7对应docker镜像,然后本地宿主机只有x86架构机器,因此需要在x86机器上构建centos arm64架构的docker镜像 宿主机操作系统:centos7.7 amd64架构 docker版本:19.03.15 ARM,AMD,X86,AArch64的概念可以参考: https://blog.csdn.net/Bubbler_726/article/details/88397357 下载 qemu-

    2024年02月11日
    浏览(63)
  • arm/aarch64架构安装conda环境

    首先找到一个下载conda的地址 清华源anaconda地址 可以看到conda在不同系统环境下有如下版本 鉴别不同国产系统可参考:国产的开源操作系统都有哪些? 这里用阿里arm/aarch64架构 所以下载连接为 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-Linux-aarch64.sh 可以手动下载上

    2024年02月14日
    浏览(41)
  • 服务器基础知识:aarch64 arm64 arm x86有什么区别

    aarch64 和 arm64 是指基于ARM架构的64位处理器,而 arm 是指基于ARM架构的32位处理器。 x86 则是指基于x86架构的处理器。 架构: aarch64 、 arm64 和 arm 都属于ARM架构,而 x86 属于x86架构。 位数: aarch64 和 arm64 是64位处理器架构,能够使用64位的寄存器和指令集。 arm 是32位处理器架构

    2024年02月08日
    浏览(52)
  • 在amd64平台构建适用于linux/arm64/v8平台的Docker镜像

    该镜像内置了Redis、MySQL、Nginx、JDK11功能 Docker 提供了一种名为 Buildx 的功能,它允许在不同的平台上进行多架构构建。我们可以使用 Buildx 在 amd64 平台上构建适用于 linux/arm64/v8 平台的 Docker 镜像。 请按照以下步骤进行操作: 确保您的 Docker 安装中已启用 Buildx。您可以运行以

    2024年02月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包