利用busybox创建基础镜像(base image)

本文详细介绍了如何利用busybox创建一个基础Docker镜像,通过下载、设定busybox,创建rootfs,编写Dockerfile,最终实现从scratch构建一个1.01M的基础镜像,探讨了基础镜像的创建原理和优化考虑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker镜像的首行从FROM alpine之类的镜像开始,但是最初的基础镜像是如何创建的,本文使用一个busybox创建一个基础镜像,相信在此过程中会对docker一些相关的概念有进一步的理解。

什么是基础镜像(base image)

简单来说,基础镜像就是没有From或者FROM scratch开头的Dockerfile所构建出来的镜像。比如alpine,这个很小的linux镜像目前只有4M左右

[root@kong ~]# docker images |grep alpine
docker.io/alpine                latest              3fd9065eaf02        4 months ago        4.15 MB
[root@kong ~]#

它的Dockerfile很简单,只有三行,这就是一个基础镜像,

FROM scratch
ADD rootfs.tar.xz /
CMD ["/bin/sh"]

在接下来的文章中我们将会像alpine那样来创建一个自己的基础镜像。

busybox

概要说明

busybox被称为嵌入式linux的瑞士军刀,这句话是在busybox自己介绍自己的时候提出的(The Swiss Army Knife of Embedded Linux)。busybox整合了很多小的unix下的通用功能到一个小的可执行文件之中,简单来说在unix或者linux下常用的那些功能在这里你都能找到,但是为了busybox的目标:嵌入式的linux,大小对于busybox来说是非常重要的优化要素和限制,这些功能有可能会有所阉割,但是对于一般需求来说已经足够。而alpine就是在busybox基础上增加了自己的包管理工具apk等功能创建了风靡一时的小巧镜像。busybox是用C语言开发的基于GPL的开源项目,目前的稳定版本为1.28.4

项目 说明
官方网站 https://busybox.net/
开源/闭源 开源
License类别 GPL License v2
代码管理地址 https://busybox.net/downloads/
开发语言 C
当前版本 1.28.4 (2018/05/22)

宿主机器

[root@kong ~]# uname -a
Linux kong 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@kong ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@kong ~]#

下载busybox

简单可以直接使用的二进制最新的版本为1.28.1

[root@kong ~]# wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64
--2018-05-25 04:51:20--  https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64
Resolving busybox.net (busybox.net)... 140.211.167.122
Connecting to busybox.net (busybox.net)|140.211.167.122|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1001112 (978K)
Saving to: 'busybox-x86_64'

100%[==============================================================================================>] 1,001,112   
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值