【Docker初探】第二节:安装alpine-pkg-glibc,部署java环境

Docker篇 (四) Alpine制作JRE镜像 #删除文本文件 rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txtTHIRDPARTYLICENSEREADME.txt Welcome.html #删除其他无用文件 rm -rf lib/plugin.jar \ lib/ext/jfxrt.jar \ bin/javaws \ lib/javaws.jar \ lib/desktop \ plugin \ lib/deploy* \ lib/*java. 阅读详情

 

相关资料:

【Docker初探】第一节:Docker+Alpine+Openssh+Supervisor部署Linux基础环境

源码:https://github.com/tfwcn/docker-alpine-server

 

这次在上一章的基础上配置java运行环境。

建空文件夹,在下面新建Dockerfile文件,内容如下:

# 基于上一章的镜像
FROM highlevel/alpine-server:base
MAINTAINER Docker PPHT <tfwcn@sina.cn>

#复制文件
COPY glibc-2.29-r0.apk /root/glibc-2.29-r0.apk
COPY glibc-bin-2.29-r0.apk /root/glibc-bin-2.29-r0.apk
COPY glibc-i18n-2.29-r0.apk /root/glibc-i18n-2.29-r0.apk

RUN apk --no-cache add ca-certificates wget \
    && wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
    && apk add /root/glibc-2.29-r0.apk /root/glibc-bin-2.29-r0.apk /root/glibc-i18n-2.29-r0.apk \
    && rm -rf /var/cache/apk/* /root/glibc-2.29-r0.apk /root/glibc-bin-2.29-r0.apk /root/glibc-i18n-2.29-r0.apk


# 配置Java环境变量,这里请对应jdk路径
ENV JAVA_HOME=/root/jdk1.8.0_211
ENV CLASSPATH=$JAVA_HOME/bin
ENV PATH=.:$JAVA_HOME/bin:$PATH

# 开端口
EXPOSE 22
EXPOSE 9001

CMD "sh /root/start.sh"

下载glibc安装包glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk到文件夹下,下载地址:

https://github.com/sgerrand/alpine-pkg-glibc/releases

在命令行切换到根目录,执行下面命令,建立docker镜像:

docker build -t highlevel/alpine-server:glibc .

先删除上一节的镜像:

docker rm alpine-base

运行镜像:

docker run --name alpine-glibc -p 10022:22 -p 9001:9001 -it highlevel/alpine-server:glibc

运行镜像时,可通过-v来映射主机目录到docker目录: 

docker run --name alpine-glibc -p 10022:22 -p 9001:9001 -v D:\tmp:/mnt/tmp -it highlevel/alpine-server:glibc

 

然后即可用ssh登录,默认密码123456:

ssh root@127.0.0.1 -p 10022

最后在官网下载jdk解压到上面Dockerfile配置的路径下即可,官网下载地址:

https://www.oracle.com/technetwork/cn/java/javase/downloads/index.html

验证java:

java -version

补充说明,如果多个Java版本,建议去掉java环境变量,直接用jdk对应的bin目录下java启动。

Alpine镜像深度解析:从BusyBox、musl libc到PIE的容器化实践 在容器化部署中,基础镜像的选择直接影响着应用的性能、安全性和运维效率。Linux容器镜像的核心在于其底层C库和工具链,这决定了应用的兼容性和运行时行为。传统发行版如Ubuntu、CentOS使用glibc,提供了广泛的兼容性但体积较大;而轻量级替代方案如musl libc,则通过精简设计和静态链接优化,显著减小了镜像体积和攻击面。这种轻量化设计在提升构建速度、降低网络开销的同时,也对应用的编译和运行环境提出了新的要求。位置无关可执行文件(PIE)等安全编译技术的默认启用,进一步强化了容器的安全性。对于追求极 阅读详情

相关推荐

OpenJDK安装包下载与部署全攻略:从发行版选择到多平台环境配置

Java开发环境搭建是每个Java开发者与运维工程师的必备技能,其核心在于正确获取和配置Java开发工具包(JDK)。JDK作为Java生态的基石,包含了编译器、调试器和Java虚拟机(JVM),是编译与运行Java程序的基础。理解JDK、JRE与OpenJDK等核心概念的区别,是避免环境配置错误的第一步。从技术价值看,一个稳定、合规的Java运行时环境能保障应用性能与安全,尤其在企业生产与持续集成(CI/CD)场景中至关重要。随着Oracle JDK授权协议变更,免费开源的OpenJDK发行版,如Ecli

weixin_33907511的博客 363

基于alpine镜像完成oracle jdk8

基于alpine镜像完成oracle jdk8

Zzzzzz的博客 1152

彻底解决Python SSL模块缺失:从原理到Docker部署的完整指南

SSL/TLS加密是现代网络通信的基石,为HTTP、API调用等数据传输提供安全保障。其工作原理基于非对称加密和证书验证,在握手阶段建立安全通道。在Python生态中,requests、urllib等库依赖底层的ssl模块实现HTTPS通信。当在Linux服务器或Docker环境部署Python应用时,常因缺失OpenSSL开发包或编译配置不当,导致出现“SSL module not available”错误,使得爬虫、微服务等联网请求完全失效。本文通过剖析Python与OpenSSL的依赖链,提供从快速诊

weixin_34068198的博客 470

Docker之数据卷与Dockerfile

一、docker基本运行 将容器后台运行并进入容器: docker run -itd -name 名字 centos 强制删除所有容器: docker rm -f $(docker ps -a) 二、数据卷、目录挂载 docker在容器中管理数据主要有两种方式: - 数据卷(Volumes) - 挂载主机目录(Bind mounts) 1、数据卷的含义 为了很好的实现数据保存和数据共享,Docker提出了Volume这个概念,简单的说就是绕过默认的联合文件系统,而以.

weixin_60389087的博客 1222

alpine-pkg-glibc:适用于Alpine Linux的glibc兼容性层软件包

高山-pkg-glibc 这是是一个Alpine Linux软件包,用于运行与glibc链接的二进制文件。 该软件包利用了基于原始glibc源的定制构建的glibc二进制文件。 内置的二进制工件来自 。 发行版 有关最新的下载链接,请参见。 如果使用的是localedef工具,则除了glibc软件包外,还需要glibc-bin和glibc-i18n软件包。 正在安装 这些软件包的当前安装方法是使用wget或curl将它们拉入并使用apk安装本地文件: 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.33-r0/gl

glibc-2.29.zip

glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc, 在制作docker alpine镜像可以需要用到他

docker 保存 环境持久化_微服务 Docker 化之基础环境

如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,谢谢:)1. 容器化Docker 的横空出世,给了容器技术带来了质的飞跃,Docker 标准化了服务的基础设施,统一了应用的打包分发,部署以及操作系统相关类库等,解决了测试生产部署时环境差异的问题。对于运维来讲,由于镜像的不可变性,更容易进行服务部署和回滚操作。利用各种第三方容器管理平台,实现一键部署、动态伸缩等操作变的轻而易举。2. ...

weixin_31411427的博客 241

glibc-2.29

glibc 升级到 2.29版本 解决报错libm.so.6: version `GLIBC_2.29' not found

SpringCloud:微服务 Docker 化之基础环境

容器化 Docker 的横空出世,给了容器技术带来了质的飞跃,Docker 标准化了服务的基础设施,统一了应用的打包分发,部署以及操作系统相关类库等,解决了测试生产部署时环境差异的问题。对于运维来讲,由于镜像的不可变性,更容易进行服务部署和回滚操作。利用各种第三方容器管理平台,实现一键部署、动态伸缩等操作变的轻而易举。 基础镜像选择 在操作系统的选择上,可选择传统的 CentOS 、 Ubuntu 或者更为轻量化的 Alpine 。比如 CentOS 或者 Ubuntu 的镜像都在 100MB 以上..

m0_46413279的博客 257

Mac上Ollama服务IP访问失败的3种修复方法(含永久生效配置)

本文详细介绍了Mac上Ollama服务IP访问失败的3种修复方法,包括临时环境变量覆盖、永久Shell配置修改及进阶排查技巧。重点解析了OLLAMA_HOST环境变量的配置原理,帮助开发者解决Connection refused问题,实现局域网IP访问Ollama服务的需求。

weixin_29209805的博客 206

GPS从入门到放弃(十七) --- 对流层延时

GPS从入门到放弃(十七) — 对流层延时 对流层概念 对流层(Troposphere)地球大气层靠近地面的一层。它同时是地球大气层里密度最高的一层,它蕴含了整个大气层约75%的质量,以及几乎所有的水蒸气及气溶胶。 对流层的下界与地面相接,上界高度随地理纬度和季节而变化,在低纬度地区平均高度为1718公里,在中纬度地区平均为1012公里,在高维度地区平均为8~9公里,并且夏季高于冬季。 卫星导航...

tyst08的专栏 1万+

如何用docker-alpine构建安全高效的生产环境?开发者必看

Docker-Alpine是官方Alpine Linux Docker镜像,以仅5MB的超小体积和丰富的软件包仓库,为开发者提供了构建安全高效生产环境的理想选择。相比传统的Ubuntu、Debian等基础镜像,它能显著减少镜像体积,提升部署效率,同时保持系统的精简与安全。 ## 📦 为什么选择Docker-Alpine? Docker-Alpine的核心优势在于**极致的轻量化**和**高效

gitblog_00488的博客 449

Labview程序框架介绍

当掌握LabVIEW基础知识并达到,理解单个小型模块程序会相对轻松。而若想进一步探索大型程序,就必然需要了解程序框架相关内容。LabVIEW常用的程序架构包括等。在多年工作中,我接触过的众多高级工程师所开发的大型程序,基本都基于这些架构搭建。接下来,将为大家详细介绍这些框架。

Misterlhw的博客 4619

精益,卑鄙的Java虚拟机:使用Alpine Linux减轻Docker 7x的负担

如何在Alpine Linux上使用Docker构建最小的JVM容器? 肯定有某种觉醒。 最近,我们越来越多地听到有关Alpine Linux的信息,这是一个轻量级发行版,由于其Docker用例而越来越受欢迎。 几个月前的一次Takipi支持聊天激起了我们的兴趣,从那时起,我们看到越来越多的用户尝试使用其容器对其进行尝试。 在本文中,我们将对Alpine进行快速概述和演练,以及如何使用它...

danpob13624的博客 728

【数据结构】面试题整理 共36题

链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针。与数组不同,链表中的元素在内存中不必是连续存储的,这使得链表在插入和删除操作时非常高效。单向链表(Singly Linked List):每个节点只包含一个指向下一个节点的指针。双向链表(Doubly Linked List):每个节点包含两个指针,一个指向下一个节点,一个指向前一个节点。循环链表(Circular Linked List):链表的最后一个节点指向第一个节点,形成一个环。

weixin_44329069的博客 7194

基于Python实现基于遥感指数的水体提取

基于Python实现基于遥感指数的水体提取

gis收藏家的博客 6148

jdk17运行环境docker镜像制作

jdk17运行环境docker镜像制作,运行稳定且体积比官方的小一倍

gfdgdshhg的博客 1万+

cocos2dx lua + protobuf

vs 2015 cocos2dx 3.10  lua  protobuf1. 下载 protobuf 源码     https://github.com/bnnswyp/protobuf/tree/master/protobuf-2.5.0    解压后的文件列表如下所示         其中 vsprojects 文件夹为 protobuf 的vs 工程2. 打开 protobuf.sln 编译...

u014486706的博客 2161

如何 3 步跑通 granite-4.0-h-tiny-da8w8-torchao-v0.17.0:新手友好的快速开始完全指南

`granite-4.0-h-tiny-da8w8-torchao-v0.17.0` 是一个使用 TorchAO 完成 8-bit(INT8)动态量化的 Granite 4.0 混合 MoE 小模型,专为 AMD EPYC 服务器通过 ZenDNN + vLLM 进行 CPU 推理而优化,无需 GPU 即可运行。本文带你按 3 个步骤,从零基础环境到成功跑通第一次量化模型推理,快速上手 CPU 推

gitblog_01167的博客 435

RK3576平台部署NanoTrack:边缘AI视觉跟踪实战指南

边缘AI部署是将深度学习模型在资源受限的嵌入式设备上高效运行的关键技术,其核心在于模型压缩、硬件适配与软件栈优化。通过INT8量化、算子融合与内存优化等原理,能显著降低模型计算量与内存占用,从而在嵌入式NPU上实现实时推理。这项技术的价值在于为安防监控、无人机视觉、工业检测等场景提供低功耗、高响应的智能感知能力。以瑞芯微RK3576平台部署轻量级视觉跟踪模型NanoTrack为例,其过程涉及模型结构分析、RKNN工具链转换、C++推理程序开发及多线程性能优化,完整展现了从算法到产品的工程化路径,为开发者提供

weixin_31887307的博客 426

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

极高效极安全的搭建微服务Docker环境:一步到位的实用教程

原代码、数据库等等一切配件都在,可是唯一不在的,是它的服务器已经停了好长时间了,那么重启就意味着我们又要重装一次环境。总共就4个微服务模块,那么这个项目就很小咯,咱们今天就拿Docker来把这个环境部署一下吧。以上步骤结束之后,可以将我们自己编译的容器上传至docker hub,以后要用到直接pull即可。上面步骤,主要属于我们的前期准备,下来我们需要将我们的微服务Jar包打进镜像,并且运行起来。好久好久之前有个因为种种原因,已经"流产"的项目,今天找到我需要重启。3、Nginx停了。

大猩猩的专栏 704

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Docker初探】第三节:导入导出镜像及压缩

相关资料: 【Docker初探】第一节:Docker+Alpine+Openssh+Supervisor部署Linux基础环境 【Docker初探】第二节:安装alpine-pkg-glibc,部署java环境 继续上一节,当镜像建立后就涉及到分发问题,用下面方法可导出镜像,再导入到新平台中,代码如下: # 导出镜像 docker save highlevel/alpine-ser...

不定时更新AI技术tensorflow实现方式,欢迎关注,有问题请私信我。 715

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

基于alpine3.10-jre1.8构建项目

通过该方案构建的镜像体积约200MB(含应用),相比直接使用Ubuntu基础镜像可减少75%存储空间,同时保持生产级稳定性。实际部署时建议结合具体应用需求调整JVM参数和资源限制。

qq_44749789的博客 448

libSQL跨平台部署实战:从源码编译到Docker镜像构建

嵌入式数据库是构建轻量级、高性能应用的核心组件,它通过单文件、无服务器的架构简化了数据存储。其原理在于将数据库引擎直接嵌入到应用程序进程中,避免了传统客户端-服务器模式的通信开销。这种设计带来了显著的技术价值:零配置部署、资源占用低、响应速度快,尤其适合桌面应用、移动端、IoT设备和微服务场景。在实际工程实践中,跨平台部署是嵌入式数据库应用的关键挑战,涉及不同操作系统的工具链适配、依赖管理和编译优化。本文聚焦于libSQL这一现代SQLite分支,针对Windows、macOS、Linux及Docker环境

weixin_30307921的博客 751

Flowable 6.8.1 工作流镜像构建:从 500MB 到 150MB 的 3 步瘦身优化

本文详细介绍了如何通过Alpine基础镜像、多阶段构建和JRE模块化裁剪三步优化Flowable 6.8.1工作流镜像,将体积从500MB缩减至150MB。方案结合SpringBoot和Docker技术,显著提升部署效率并降低资源消耗,适用于云原生环境下的工作流引擎部署。

weixin_30770783的博客 448
上一篇: 【Docker初探】第一节:Docker+Alpine+Openssh+Supervisor部署Linux基础环境
下一篇: 【Docker初探】第三节:导入导出镜像及压缩
PPHT-H
博客等级 码龄18年 6254粉丝 84原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

PPHT-H

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

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

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

打赏作者

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

抵扣说明:

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

余额充值