目录

busybox和busybox镜像是什么

概述

很多人用 busybox,但是不是很多人能说出来 busybox 是个什么东西。

探究

用过 busybox 镜像的同学都知道,busybox 没有 curl,另很多习惯用 curl 的同学会有点不习惯,然后会找各种 yum, apt-get, apk 等这些常见的 Linux 发行版的软件包管理工具会安装,但是最终都是徒劳的…因为 busybox 里压根就没有这些,唯一能做的,可能就是不用 curl,该用 wget 好了。

这样自然大家都会有疑问,为什么会没有 curl,又为什么装不了,本文就简单的给大家做个介绍。

关于 busybox 的概念和项目,可以参考一下下面的链接,这里不赘述了,简单来说 busybox 并不是一个常见的 Linux 发行版,而是一个工具集,这里的工具集,理解成很多用C写的命令和工具就好了,所以十分精简,busybox 也许可以覆盖各位工作中90%的工作,但是依然有10%的地方,他无法直接覆盖。而我们经常在 Dockerhub 下载的 busybox 镜像则是由 Docker 社区维护的,也就是一般来说 busybox 镜像不会改也不会加什么命令,一般直接对接的就是 busybox 本身,当然有兴趣的话,可以看看 busybox 的命令源码

举个例子 wget 的实现:

https://git.busybox.net/busybox/tree/networking/wget.c?h=1_32_stable

另外,busybox 的镜像有几种不同的版本,如果你希望有一些包管理工具,也就是当你需要 curl 的时候能安装到,那最好选下带 -musl, -glibc 这些标签之类的镜像,因为有些镜像 是直接 FROM scratch 的,也就是这种镜像就不会有包管理工具,这里一定要心中有数。

参考资料

  1. busybox镜像
  2. busybox
  3. github busybox
警告
本文最后更新于 2022年8月9日,文中内容可能已过时,请谨慎参考。