88300牛魔王四肖

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

发布日期:2019-08-30 17:01   来源:未知   阅读:

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

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

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

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

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

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

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

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

Power by DedeCms