Docker 的 Busybox 操作系统镜像

2024-05-13 11:12

本文主要是介绍Docker 的 Busybox 操作系统镜像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BusyBox是一个遵循GPL协议、以自由软件形式发行的应用程序。

Busybox在单一的可执行文件中提供了精简的Unix工具集,可运行于多款POSIX环境的操作系统,例如Linux(包括Android)、Hurd、FreeBSD等等。

由于BusyBox可执行文件的文件比较小,使得它非常适合使用于嵌入式系统。

作者将BusyBox称为“嵌入式Linux的瑞士军刀”。

在以前,Docker 官方为了压缩容量,保证容器的启用,其实都在使用 busybox,但后期,Docker 官方开始使用 Alpine 来替代 busybox。

获取官方镜像

可以使用 docker pull 指令下载 busybox:latest 镜像:

PS C:\Users\yhu> docker pull busybox:latest
latest: Pulling from library/busybox
ec562eabd705: Pull complete
Digest: sha256:5eef5ed34e1e1ff0a4ae850395cbf665c4de6b4b83a32a0bc7bcb998e24e7bbb
Status: Downloaded newer image for busybox:latest
docker.io/library/busybox:latestWhat's Next?View a summary of image vulnerabilities and recommendations → docker scout quickview busybox:latest
PS C:\Users\yhu>

下载后,可以看到 busybox 镜像只有 4.26 MB

PS C:\Users\yhu> docker image ls
REPOSITORY                                        TAG               IMAGE ID       CREATED         SIZE
repo-docker.isharkfly.com/docker-hub/visatrack    latest            a329341dbaeb   3 days ago      522MB
repo-docker.isharkfly.com/docker-hub/visatrack    <none>            f5f9d8b3b410   3 days ago      522MB
alpine/git                                        latest            80ed206c002b   7 days ago      50.4MB
data-mq-service                                   0.0.1-SNAPSHOT    7eb277a365d6   3 weeks ago     475MB
docsify-docs                                      0.0.1             32062033284a   6 weeks ago     1.13GB
<none>                                            <none>            0ebfbefe1d52   6 weeks ago     1.13GB
alpine                                            latest            05455a08881e   3 months ago    7.38MB
zchub-crawler                                     latest            b20aa408fe8f   7 months ago    1.6GB
mq-service                                        0.0.1-SNAPSHOT    308dd50eb67a   7 months ago    441MB
reso-web-api-reference-server-odata-manager-app   latest            27cdaae03879   8 months ago    441MB
reso-builder                                      latest            cabba9a35a22   8 months ago    1.47GB
busybox                                           latest            65ad0d468eb1   11 months ago   4.26MB
tutor-service                                     0.0.1-SNAPSHOT    20d2f52a1fc4   13 months ago   521MB
sharkfly-wechat-service                           0.0.1-SNAPSHOT    0d3e7843994e   13 months ago   465MB
eclipse-temurin                                   17-jdk-alpine     9a0a4e74d117   13 months ago   358MB
rabbitmq                                          3.11-management   04a3a28a368b   13 months ago   255MB
framework-spring-docker                           0.0.1-SNAPSHOT    42e51829e8c7   15 months ago   379MB
adoptopenjdk/openjdk11-openj9                     alpine            b533cd6150ba   15 months ago   379MB
mysql/mysql-server                                latest            1d9c2219ff69   16 months ago   496MB
docker101tutorial                                 latest            e60bd4e10534   17 months ago   47MB
alpine/git                                        <none>            22d84a66cda4   17 months ago   43.6MB
PS C:\Users\yhu>

如果只说是大小来说,Alpine 也大不了多少,但 Alpine 提供了更多的功能。

这也就是为什么 Docker 官方切换到 Alpine 的原因。

运行 busybox

启动一个 busybox 容器,并在容器中执行 grep 命令。

从启动的速度来看,那就是几乎是光速了。

PS C:\Users\yhu> docker run -it busybox
/ # grep
BusyBox v1.36.1 (2023-05-18 22:34:17 UTC) multi-call binary.Usage: grep [-HhnlLoqvsrRiwFE] [-m N] [-A|B|C N] { PATTERN | -e PATTERN... | -f FILE... } [FILE]...Search for PATTERN in FILEs (or stdin)-H      Add 'filename:' prefix-h      Do not add 'filename:' prefix-n      Add 'line_no:' prefix-l      Show only names of files that match-L      Show only names of files that don't match-c      Show only count of matching lines-o      Show only the matching part of line-q      Quiet. Return 0 if PATTERN is found, 1 otherwise-v      Select non-matching lines-s      Suppress open and read errors-r      Recurse-R      Recurse and dereference symlinks-i      Ignore case-w      Match whole words only-x      Match whole lines only-F      PATTERN is a literal (not regexp)-E      PATTERN is an extended regexp-m N    Match up to N times per file-A N    Print N lines of trailing context-B N    Print N lines of leading context-C N    Same as '-A N -B N'-e PTRN Pattern to match-f FILE Read pattern from file
/ #

查看容器内的挂载信息。

/ # mount
overlay on / type overlay (rw,relatime,lowerdir=/var/lib/docker/overlay2/l/K7LGRMOMB4YBJOAIY37TDH27OH:/var/lib/docker/overlay2/l/WV2IR37DT2RO7IBXLLNKC5WMBI,upperdir=/var/lib/docker/overlay2/deeb782171b9c2a33054df6b46a3125dc7d283d3af2136a4cc2aa84ec9c9a388/diff,workdir=/var/lib/docker/overlay2/deeb782171b9c2a33054df6b46a3125dc7d283d3af2136a4cc2aa84ec9c9a388/work)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,size=65536k,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666)
sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime)
tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,mode=755)
cpuset on /sys/fs/cgroup/cpuset type cgroup (ro,nosuid,nodev,noexec,relatime,cpuset)
cpu on /sys/fs/cgroup/cpu type cgroup (ro,nosuid,nodev,noexec,relatime,cpu)
cpuacct on /sys/fs/cgroup/cpuacct type cgroup (ro,nosuid,nodev,noexec,relatime,cpuacct)
blkio on /sys/fs/cgroup/blkio type cgroup (ro,nosuid,nodev,noexec,relatime,blkio)
memory on /sys/fs/cgroup/memory type cgroup (ro,nosuid,nodev,noexec,relatime,memory)
devices on /sys/fs/cgroup/devices type cgroup (ro,nosuid,nodev,noexec,relatime,devices)
freezer on /sys/fs/cgroup/freezer type cgroup (ro,nosuid,nodev,noexec,relatime,freezer)
net_cls on /sys/fs/cgroup/net_cls type cgroup (ro,nosuid,nodev,noexec,relatime,net_cls)
perf_event on /sys/fs/cgroup/perf_event type cgroup (ro,nosuid,nodev,noexec,relatime,perf_event)
net_prio on /sys/fs/cgroup/net_prio type cgroup (ro,nosuid,nodev,noexec,relatime,net_prio)
hugetlb on /sys/fs/cgroup/hugetlb type cgroup (ro,nosuid,nodev,noexec,relatime,hugetlb)
pids on /sys/fs/cgroup/pids type cgroup (ro,nosuid,nodev,noexec,relatime,pids)
rdma on /sys/fs/cgroup/rdma type cgroup (ro,nosuid,nodev,noexec,relatime,rdma)
misc on /sys/fs/cgroup/misc type cgroup (ro,nosuid,nodev,noexec,relatime,misc)
cgroup on /sys/fs/cgroup/systemd type cgroup (ro,nosuid,nodev,noexec,relatime,name=systemd)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k)
/dev/sdd on /etc/resolv.conf type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
/dev/sdd on /etc/hostname type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
/dev/sdd on /etc/hosts type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
devpts on /dev/console type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666)
proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/fs type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/irq type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/sys type proc (ro,nosuid,nodev,noexec,relatime)
tmpfs on /proc/acpi type tmpfs (ro,relatime)
tmpfs on /proc/kcore type tmpfs (rw,nosuid,size=65536k,mode=755)
tmpfs on /proc/keys type tmpfs (rw,nosuid,size=65536k,mode=755)
tmpfs on /proc/timer_list type tmpfs (rw,nosuid,size=65536k,mode=755)
tmpfs on /sys/firmware type tmpfs (ro,relatime)
/ #

busybox 镜像虽然小巧,但包括了大量常见的 Linux 命令,读者可以用它快速熟悉 Linux 命令。

随着官方对 Docker 容器切换的情况来看,Busybox 对大部分使用 Docker 的人来说可能用不上。

基本上了解下即可。

Docker 的 Busybox 操作系统镜像 - 系统容器 - iSharkFlyBusyBox是一个遵循GPL协议、以自由软件形式发行的应用程序。 Busybox在单一的可执行文件中提供了精简的Unix工具集,可运行于多款POSIX环境的操作系统,例如Linux(包括Android)、Hurd、FreeBSD等等。 由于BusyBox可执行文件的文件比较小,使得它非常适合使用于嵌入式系统。 作者将BusyBox称为“嵌入式Linux的瑞士军刀”。 在以前,Docker 官方为了压缩容量,保证容器的启用…icon-default.png?t=N7T8https://www.isharkfly.com/t/docker-busybox/15734

这篇关于Docker 的 Busybox 操作系统镜像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985539

相关文章

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

docker-compose安装和简单使用

本文介绍docker-compose的安装和使用 新版docker已经默认安装了docker-compose 可以使用docker-compose -v 查看docker-compose版本 如果没有的话可以使用以下命令直接安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-c

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作