busybox是什么系统软件(三分钟把系统内核完全跑起来busybox介绍

生活常识 2023-04-17 07:51生活常识www.jianfeiren.cn

  Docker镜像系统的第一行从FROM alpine这类的镜像系统刚开始,可是最开始的基本镜像系统是怎样建立的,文中应用一个busybox建立一个基本镜像系统

  坚信在这里全过程时会对docker一些有关的定义有进一步的了解。

  什么叫基本镜像系统(base image)

  简易而言,基本镜像系统便是沒有From或是FROM scratch开始的Dockerfile所搭建出去的镜像系统。例如alpine,这一不大的linux镜像系统现阶段仅有4M上下

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

  它的Dockerfile非常简单,仅有三行,这就是一个基本镜像系统,

  在接下去的文章内容中大家可能像alpine那般来建立一个自身的基本镜像系统。

  busybox概述表明

  busybox被称作内嵌式linux的瑞士军刀,这话是在busybox自身自我介绍的情况下明确提出的(The Swiss Army Knife of Embedded Linux)。busybox融合了许多 小的unix下的通用性作用到一个小的exe文件当中,简易而言在unix或是linux下常见的这些作用在这儿你都能寻找,可是以便busybox的总体目标内嵌式的linux,尺寸针对busybox而言是十分关键的提升因素和限定,这种作用有可能会有一定的阄割,可是针对一般要求而言早已充足。而alpine便是在busybox基本上提升了自身的包可视化工具apk等作用建立了风靡一时的精巧镜像系统。busybox是用C语言开发设计的根据GPL的开放源代码项目,现阶段的平稳版本号为1.28.4

  寄主设备

  [root@kong ~]# uname -aLinux 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 /etcedhat-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_64Resolving busybox.net (busybox.net)... 140.211.167.122Connecting to busybox.net (busybox.net)|140.211.167.122|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 1001112 (978K)Saving to: 'busybox-x86_64'100%[==============================================================================================>] 1,001,112 19.3KB/s in 30s 2018-05-25 04:51:57 (32.4 KB/s) - 'busybox-x86_64' saved [1001112/1001112][root@kong ~]#

  设置busybox

  版本号确定

  键入busybox能够看得出版本号及其了解的linux下的专用工具,细心看一遍便会了解busybox称为自身是瑞士军刀一点也不浮夸,换个角度来看,瑞士军刀假如敢称为linux里的busybox将会会造成争议。

  [root@kong ~]# busyboxBusyBox v1.28.1 (2018-02-15 14:34:02 CET) multi-call binary.BusyBox is copyrighted by many authors between 1998-2015.Licensed under GPLv2. See source distribution for detailedcopyright notices.Usage: busybox [function [arguments]...] or: busybox --list[-full] or: busybox --install [-s] [DIR] or: function [arguments]... BusyBox is a multi-call binary that combines many common Unix utilities into a single executable. Most people will create a link to busybox for each function they wish to use and BusyBox will act like whatever it was invoked as.Currently defined functions: [, [[, acpid, add-shell, addgroup, adduser, adjtimex, arch, arp, arping, ash, awk, base64, basename, beep, blkdiscard, blkid, blockdev, bootchartd, brctl, bunzip2, bzcat, bzip2, cal, cat, chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, conspy, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, dpkg, dpkg-deb, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake, expand, expr, factor, fakeidentd, fallocate, false, fatattr, fbset, fbsplash, fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk, fsck, fsck.minix, fsfreeze, fstrim, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep, groups, gunzip, gzip, halt, hd, hdparm, head, hexdump, hexedit, hostid, hostname, httpd, hush, hwclock, i2cdetect, i2cdump, i2cget, i2cset, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd, init, insmod, install, ionice, i

  ostat, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, ipneigh, iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, last, less, link, linux32, linux64, linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lsof, lspci, lsscsi, lsusb, lzcat, lzma, lzop, makedevs, makemime, man, md5sum, mdev, mesg, microcom, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix, mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more, mount, mountpoint, mpstat, mt, mv, nameif, nanddump, nandwrite, nbd-client, nc, netstat, nice, nl, nmeter, nohup, nproc, nsenter, nslookup, ntpd, nuke, od, openvt, partprobe, passwd, paste, patch, pgrep, pidof, ping, ping6, pipe_progress, pivot_root, pkill, pmap, popmaildir, poweroff, powertop, printenv, printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate, rdev, readahead, readlink, readprofile, realpath, reboot, reformime, remove-shell, renice, reset, resize, resume, rev, rm, rmdir, rmmod, route, rpm, rpm2cpio, rtcwake, run-init, run-parts, runlevel, runsv, runsvdir, rx, script, scriptreplay, sed, sendmail, seq, setarch, setconsole, setfattr, setfont, setkeycodes, setlogcons, setpriv, setserial, setsid, setuidgid, sh, sha1sum, sha256sum, sha三秒um, sha512sum, showkey, shred, shuf, slattach, sleep, smemcap, softlimit, sort, split, ssl_client, start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv, svc, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr, traceroute, traceroute6, true, truncate, tty, ttysize, tunctl, ubiattach, ubidetach, ubimkvol, ubirename, ubirmvol, ubirsvol, ubiupdatevol, udhcpc, udhcpd, udpsvd, uevent, umount, uname, unexpand, uniq, unix2dos, unlink, unlzma, unshare, unxz, unzip, uptime, users, usleep, uudecode, uuencode, vconfig, vi, vlock, volname, w, wall, watch, watchdog, wc, wget, which, who, whoami, whois, xargs, xxd, xz, xzcat, yes, zcat, zcip[root@kong ~]

  建立rootfs

  这幅图在镜像系统基本详细介绍的情况下早已被一次次看到了,rootfs是linux中关键的定义,而alpine中也有ADD rootfs.tar.xz那样一句,接下去大家将了解一下怎样转化成一个简易的rootfs

  建立文件目录并进到

  建立rootfs

  实行以下句子

  实行系统日志

  結果确定

  将busybox复制至新创建的http://www.diemang.com/post/bin文件目录下

  那样,所述指令的连接目标就存有了

  建立rootfs.tar

  这里留意相对路径,而事后次相对路径会进行至/下,进而建立新的系统软件的rootfs,这也是以零构建linux(linux from scratch)的关键实际操作之一。

  简易表明busybox –list-modules列举了busybox的全部控制模块,随后为此为基本,建立了一个中小型的rootfs

  [root@kong rootfs]# busybox –list-modules |wc -l

  389

  [root@kong rootfs]#

  提前准备Dockerfile

  提前准备一个一行的Dockerfile

  建立base镜像系统,因为沒有发觉实际的內容, 未建立出实际镜像系统。,文中以便演试便捷,立即在这里建立Dockerfile,这并并不是一个好点子,具体的情况下请不要这样做,假如当前目录下有100G的文档,便会极其迟缓,并且都不标准,不相干物件必须撤场。

  from scracth

  有From,这一scratch能够pull么,现阶段的版本号早已将其做为一个保存名字

  [root@kong rootfs]# docker search scratch |grep 'an explicitly empty'docker.io docker.io/scratch an explicitly empty image, especially for ... 407 [OK] [root@kong rootfs]# docker pull scratchUsing default tag: latestError response from daemon: 'scratch' is a reserved name[root@

  kong rootfs]#

  将此Dockerfile加上一行沒有具体功效的,看一下scratch究竟是什么

  开展搭建,发觉造成了一个0字节的镜像文件,也与scratch的本意互通

  [root@kong rootfs]# docker build -t busyboxbase:latest .Sending build context to Docker daemon 2.415 MBStep 1/2 : FROM scratch ---> Step 2/2 : MAINTAINER LiuMiao ---> Running in b118fd7c73a7 ---> 2074dc76c09eRemoving intermediate container b118fd7c73a7Successfully built 2074dc76c09e[root@kong rootfs]# docker images |grep busyboxbasebusyboxbase latest 2074dc76c09e 14 seconds ago 0 B[root@kong rootfs]#

  到此,大家了解了from scratch的确不容易有附加的加上,接下去大家像alpine那般加上以下几句

  大家的Dockerfile也是基本上一样的三行

  那样就建立了一个1M的busybox为基本的镜像系统

  运作并应用

  应用docker run发觉此镜像系统所起动的器皿并无异常之处

  [root@kong rootfs]# docker run --rm -it busyboxbase sh/ # hostnameb7f9e9646746/ # uname -aLinux b7f9e9646746 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 GNU/Linux/ #

  小结

  本文详细介绍了怎么使用busybox融合from scratch体制建立docker的基本镜像系统及其有关基本原理。文中运用busybox 1.28.1版本号建立了一个1.01M的能用的基本镜像系统,从瑞士军刀到法国指甲钳,你能提升到多个K全是行得通的,可是来到10M下列实际上应当大量考虑到的是事后的可扩展性和多功能性的要素了。可是从的视角考虑到,集成化进来了那麼智能的,也将这种作用的不稳定要素也集成化进来了。运用from scratch体制,建立小而且依赖感少的前后文自然环境是十分有效的。

  版权声明本文内容由网友提供,该文观点仅代表作者本人。本站(http://www.diemang.com/)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3933150@qq.com 举报,一经查实,本站将立刻删除。

  本文地址

  http://www.diemang.com/post/227296.html

  版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 907991599@qq.com 举报,一经查实,本站将立刻删除。

Copyright@2015-2025 Www.jianfeiren.cn减肥人网版板所有All right reserved