在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

Alpine Linux,一个只有 5M 的 Docker 镜像

  • 2016-01-06
  • 本文字数:1182 字

    阅读完需:约 4 分钟

简介

Alpine Linux Docker 镜像基于 Alpine Linux 操作系统,后者是一个面向安全的轻型 Linux 发行版。不同于通常 Linux 发行版,Alpine Linux 采用了 musl libc busybox 以减小系统的体积和运行时资源消耗。在保持瘦身的同时,Alpine Linux 还提供了自己的包管理工具 apk,可以在其网站上查询,或者直接通过apk 命令查询和安装。

Alpine Linux Docker 镜像也继承了 Alpine Linux 发行版的这些优势。相比于其他 Docker 镜像,它的容量非常小,仅仅只有 5M,且拥有非常友好的包管理器。

下表是一些官方镜像的大小:

除了小,Alpine 镜像的另外一大优势就是内置完整包管理器。相较于其他微型基础镜像(如 busybox,基础镜像大小为 1.113MB),拥有一个包管理器,可以快速构建应用镜像。例如这个 dnsmasq 镜像,Dockerfile 非常简单,仅仅运行了 Alpine 提供的 apk 工具安装了 dnsmasq 包即可:

复制代码
FROM alpine:3.2
RUN apk -U add dnsmasq
EXPOSE 53 53/udp
ENTRYPOINT ["dnsmasq", "-k"]

使用

由于 Alpine Linux 有完整的包管理器,其使用方式和其他的基础镜像类似,直接使用其包管理命令 apk 即可。

如 README 中例子,如果需要安装一个 mysql 客户端,只需要创建如下 Dockerfile:

复制代码
FROM gliderlabs/alpine:3.3
RUN apk add --no-cache mysql-client
ENTRYPOINT ["mysql"]

然后通过docker build命令,即可构建出自己的 mysql 客户端。同样,基于 Alpine Linux 构建出来的镜像,有其空间上的巨大优势:

复制代码
docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
alpine/mysql latest edf988b8f4c8 58 seconds ago 35.74 MB

争论

对于 Alpine Linux, Hacker News 上争论还是比较激烈的。

首先是空间占用问题,小是 Alpine Linux 的最大优势,但是 Docker 的文件系统可以进行分层缓存,对于已经构建或者拉取过镜像的机器来说,每次的增量更新内容可能并不会很多。也就是说,如果所有镜像都使用相同的基础镜像,这个镜像在所有机器上都只会拉取一遍。

另外,Alpine Linux 使用了 musl,可能和其他 Linux 发行版使用的 glibc 实现会有所不同。在容器化中最可能遇到的是 DNS 问题,即 musl 实现的 DNS 服务不会使用 resolv.conf 文件中的 search 和 domain 两个配置,这对于一些通过 DNS 来进行服务发现的框架可能会遇到问题。

总结

Alpine Linux,一个只有 5M 的 Docker 镜像,它尽可能的简化了镜像的大小,易于分发,有着完善的包管理器和预编译的包。如果你需要一个干净、简洁的容器,开始尝试使用吧!


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者(已满),InfoQ 读者交流群(#2)InfoQ 好读者)。

2016-01-06 18:0040748

评论

发布
暂无评论
发现更多内容

YashanDB数据库性能调优中的核心指标解析

数据库砖家

YashanDB数据库性能监控实用指南

数据库砖家

C#/.NET/.NET Core优秀项目和框架2025年11月简报

追逐时光者

.net 微软

风险评估:黑龙江省企业等保测评整改后运维阶段的持续合规保障

等保测评

网络安全 信息安全 黑龙江等保测评 哈尔滨等保测评

安全审查支撑在黑龙江省等保测评整改中的独特设计

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

NFT 技术的应用及开发

北京木奇移动技术有限公司

NFT 数字藏品 软件外包公司

大数据-171 Elasticsearch-Head 与 Kibana 7.3.0 实战:安装要点、连通性与常见坑

武子康

Java 大数据 elasticsearch 分布式 Kibana

YashanDB数据库性能瓶颈诊断与精准优化方法

数据库砖家

GitHub Actions 供应链攻击:Reviewdog 多个动作在特定时间段遭入侵

qife122

供应链攻击 CVE-2025-30154

2025年开发者必看:用PandaWiki零代码搭建智能产品文档系统

百川云开发者

AI 英语教育 App 的主要功能

北京木奇移动技术有限公司

AI教育 软件外包公司 AI英语

AI 英语作文 App 的开发技术与功能

北京木奇移动技术有限公司

AI教育 软件外包公司 AI英语

YashanDB数据库性能测试与监控技术详解

数据库砖家

YashanDB数据库性能调优的5大关键技巧

数据库砖家

YashanDB数据库性能调优中的核心指标解析

数据库砖家

平凡的我们,摘下鸿蒙世界的星辰

脑极体

AI

别让AI智能体瞎干活!多Agent分工+协作3步法,新手也会用!

王中阳Go

AI 智能体

YashanDB数据库性能调优的5大关键技巧

数据库砖家

数据分级分类解读及方案

金陵老街

数据 分级分类

牡丹江市企业等保整改后:巧用产品功能应对定期复查

等保测评

网络安全 信息安全 黑龙江等保测评 哈尔滨等保测评

YashanDB数据库性能调优的10个实用技巧揭秘

数据库砖家

YashanDB数据库性能监控与瓶颈识别方法

数据库砖家

JSAPIThree 数据源系统学习笔记:让数据在地图上可视化

map_3d_vis

csv 数据源 初学者 GeoJSON mapvthree

YashanDB数据库系统升级与兼容性保障策略分享

数据库砖家

YashanDB数据库性能调优的7个关键步骤

数据库砖家

我用AI写了一本AI编程的书,销量还不错,这个经验可复制

陆通

成为一个进阶语音智能体开发者,你必须了解这些丨 RTE101 技术专场@RTE2025 回顾

RTE开发者社区

元图CAD场景化插件:以智能引擎重塑设计边界,让效率与创新齐飞

元图CAD

人工智能 AI翻译 场景化插件

报名 | 美团技术沙龙第87期:鸿蒙原生适配与跨端架构演进实践

最新动态

YashanDB数据库性能瓶颈及优化对策全面解析

数据库砖家

Step-Audio-R1:音频深度推理模型;Soul 冲刺港交所,「AI+沉浸式社交平台」,累计注册用户达 3.9 亿丨日报

RTE开发者社区

Alpine Linux,一个只有5M的Docker镜像_语言 & 开发_金灵杰_InfoQ精选文章