报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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:0040050

评论

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

开源IM聊天程序HarmonyChat:基于鸿蒙NEXT的WebSocket协议

JackJiang

即时通讯;IM;网络编程

SecureCRT & SecureFX 9.6 for macOS, Linux, Windows - 跨平台的多协议终端仿真和文件传输

sysin

securecrt

LED和LCD的15个不同之处

Dylan

LCD1602液晶显示屏 LED LED display LED显示屏 lcd

2024年Apache DolphinScheduler社区高光时刻总结!

白鲸开源

Apache DolphinScheduler 2024年终总结

每年一问:Java日期格式化中周所在年引发的bug

白鲸开源

开源 Apache DolphinScheduler 日期 大数据调度

VUE3与JNPF快速开发平台的完美结合

伤感汤姆布利柏

《计算机组成及汇编语言原理》阅读笔记:p178-p199

codists

计算机组成及汇编语言原理

GreatSQL temp文件占用时长分析

GreatSQL

淘宝APP分类API接口:开发、运用与收益全解析

科普小能手

数据挖掘 淘宝 电商 API 接口 API 测试

Helm适配华为云OBS实践分享,更方便地部署、管理复杂应用

华为云开发者联盟

开源 Kubernetes Helm OBS

AI英语阅读APP的技术框架

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

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

京东供应链创新与实践:应用数据驱动的库存选品和调拨算法提升履约效率

京东科技开发者

2024年终福利 | Apache DolphinScheduler案例合集,附PDF下载

白鲸开源

Apache DolphinScheduler 大数据 开源 案例集 大数据调度

AI赋能产业升级:探索人工智能在不同领域的实际应用

天津汇柏科技有限公司

AI 人工智能

AI | 数智创新,引导财务共享建设新方向

用友智能财务

政策 解读 会计

重大科技成就发布会上,Apache SeaTunnel获评2024年度开源社区!

白鲸开源

数据同步 数据集成 CSDN Apache SeaTunnel

Boris FX Mocha Pro 2025:影视后期制作的新利器,精准跟踪,极致特效

Rose

构建AI Agent必学的4种设计模式,一文了解

Baihai IDP

程序员 AI LLMs AI Agents AI 助手

由 Mybatis 源码畅谈软件设计(九):“能用就行” 其实远远不够

京东科技开发者

业务监控—一站式搭建jmeter+telegraf+influxdb+Grafana看板

京东科技开发者

白鲸开源WhaleStudio荣获2024星空奖!

白鲸开源

datafun 数据集成平台 大数据调度 白鲸开源 星空奖

博世智驾新动力:Apache DolphinScheduler如何征服数据处理挑战

白鲸开源

人工智能 Apache DolphinScheduler 智能驾驶 博世智驾

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