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
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容