0

0

构建属于自己的 jre Docker 镜像

絕刀狂花

絕刀狂花

发布时间:2025-07-12 08:54:23

|

745人浏览过

|

来源于php中文网

原创

1. 概述

在实际项目中,有时官方提供的相关 docker 镜像不能满足企业对于镜像内部安全的要求;所以大型的企业都会构建属于企业内部的中间件的 docker 镜像。

2. 基于Alpine 制作 jre 镜像alpine Linux 简介

Alpine Linux 是一个轻型 Linux 发行版,它不同于通常的 Linux 发行版,Alpin e采用了musl libc 和 BusyBox 以减少系统的体积和运行时的资源消耗。alpine Linux 优点

小巧:基于Musl libc 和 Busybox,和 Busybox 一样小巧,最小的 Docker 镜像只有 5MB;安全:面向安全的轻量发行版;简单:提供 APK 包管理工具,软件的搜索、安装、删除、升级都非常方便;适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像;代码语言:javascript代码运行次数:0运行复制
<code class="javascript">https://pkgs.alpinelinux.org/packages</code>

下面是一些常见 Linux 的官方镜像的容量对比图

构建属于自己的 jre Docker 镜像

先准备构建镜像所需的jre,下载 jre8

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">https://www.oracle.com/java/technologies/downloads/https://www.oracle.com/java/technologies/downloads/#java8</code>
创建并编辑 Dockerfile代码语言:javascript代码运行次数:0运行复制
<code class="javascript">touch Dockerfilevi Dockerfile</code>
在 Dockerfile 文件中添加以下命令代码语言:javascript代码运行次数:0运行复制
<code class="javascript"># 1.指定基础镜像,并且必须是第一条指令FROM alpine:latest# 2.指明镜像的作者和电子邮件MAINTAINER huang "huangjinjin@qq.com"# 3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建该目录WORKDIR /servers# 4.将jre安装包复制到镜像中(ADD与COPY的区别:ADD复制并解压,COPY仅复制)ADD jre-8u321-linux-x64.tar.gz .# 5.更改 Alpine 的软件源为阿里云,默认从官方源拉取比较慢RUN echo http://mirrors.aliyun.com/alpine/v3.10/main/ > /etc/apk/repositories && \    echo http://mirrors.aliyun.com/alpine/v3.10/community/ >> /etc/apk/repositories# 6.运行指定的命令## Alpine linux 为了精简本身并没有安装太多的常用软件, apk类似于ubuntu的apt-get,## 用来安装一些常用软件,其语法如下:apk add bash wget curl git make vim docker## wget是linux下的ftp/http传输工具,没安装会报错“/bin/sh: wget: not found”## ca-certificates证书服务,是安装glibc前置依赖RUN apk update && apk upgradeRUN apk --no-cache add ca-certificates wget \    && wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \    && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk \    && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-bin-2.29-r0.apk \    && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-i18n-2.29-r0.apk \     && apk add glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk \    && rm -rf /var/cache/apk/* glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk# 7.配置环境变量ENV JAVA_HOME=/servers/jre1.8.0_321ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV PATH=$JAVA_HOME/bin:$PATH# 容器启动时需要执行的命令# CMD ["java", "-version"]</code>

glibc 安装包如果直接从 github 下载可能比较慢,可以提前下载,然后通过以下命令直接复制到镜像中

ShopWind多用户商城系统
ShopWind多用户商城系统

ShopWind是一款基于Yii2.0框架深度重构的B2B2C、O2O行业的电商系统软件,您可以轻松创建和发布属于自己品牌的专业的电商平台,进行全方位的品牌宣传和产品推广。ShopWind v3.x标准版开始走向开源,打造一款完全开源的电商系统,可以免费用于商业运营或者二次开发,免于商业版权的烦恼。v3.x商业版包含PC、手机H5、微商城、APP客户端(Andorid+iOS)、微信小程序、今日头

下载
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">COPY glibc-2.29-r0.apk /serversCOPY glibc-bin-2.29-r0.apk /serversCOPY glibc-i18n-2.29-r0.apk /servers</code>
构建镜像代码语言:javascript代码运行次数:0运行复制
<code class="javascript">docker build -t alpine-jre8:v1.0 .</code>
构建属于自己的 jre Docker 镜像
创建并启动容器

使用命令docker run -it --name 容器名 镜像的id,创建并启动容器

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">docker run -it --name jreV1 74d87e3a31e7</code>

或者

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">docker create -it alpine-jre8:v2.0docker start 容器ID# 进入容器docker exec -it 容器ID /bin/sh</code>
构建属于自己的 jre Docker 镜像
3. 基于 CentOS 制作 jre镜像创建并编辑 Dockerfile代码语言:javascript代码运行次数:0运行复制
<code class="javascript">touch Dockerfilevi Dockerfile</code>
在 Dockerfile 文件中添加以下命令代码语言:javascript代码运行次数:0运行复制
<code class="javascript">FROM centos:7MAINTAINER huangjinjin "huangjinjin@qq.com"WORKDIR /servers/jdkADD jre-8u321-linux-x64.tar.gz /servers/jdkENV JAVA_HOME=/servers/jdk/jre1.8.0_321ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV PATH=$JAVA_HOME/bin:$PATHCMD ["java", "-version"]</code>

从 Dockerfile 看,基于 centos 构建镜像 Dockerfile 比较简单

构建镜像代码语言:javascript代码运行次数:0运行复制
<code class="javascript">docker build -t centos-jre8:v1.0 .</code>
构建属于自己的 jre Docker 镜像

可以看出基于 centos 构建的镜像要大不少

创建并启动容器代码语言:javascript代码运行次数:0运行复制
<code class="javascript">docker run -it --name jreV2 705360865867</code>

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
什么是中间件
什么是中间件

中间件是一种软件组件,充当不兼容组件之间的桥梁,提供额外服务,例如集成异构系统、提供常用服务、提高应用程序性能,以及简化应用程序开发。想了解更多中间件的相关内容,可以阅读本专题下面的文章。

181

2024.05.11

Golang 中间件开发与微服务架构
Golang 中间件开发与微服务架构

本专题系统讲解 Golang 在微服务架构中的中间件开发,包括日志处理、限流与熔断、认证与授权、服务监控、API 网关设计等常见中间件功能的实现。通过实战项目,帮助开发者理解如何使用 Go 编写高效、可扩展的中间件组件,并在微服务环境中进行灵活部署与管理。

225

2025.12.18

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

3445

2026.01.21

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

280

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

515

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

415

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

449

2024.04.08

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

37

2026.02.11

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

3

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 12.9万人学习

【李炎恢】ThinkPHP8.x 后端框架课程
【李炎恢】ThinkPHP8.x 后端框架课程

共50课时 | 4.7万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号