SEO实战技术培训
一鸣叫兽SEO培训-国内知名企业SEO专家、专注SEO实战培训教学、全程一对一独立辅导。
文章27273 建站 浏览5131054

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

原文标题:(busybox是什么系统软件(三分钟把系统内核完全跑起来busybox介绍))

我相信在这个过程中我会对码头工人的一些相关概念有进一步的了解。 什么是基本形象

简单地说,一个基本的图像是由一个没有从头开始或从头开始的文档文件构建的。例如,阿尔卑斯山,这个非常小的linux映像目前只有4M左右

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

它的文档非常简单,只有三行,这是一个基本的图像。

Docker利用busybox创建基础镜像(base image) 在下面的文章中,我们将创建我们自己的基本形象,比如阿尔卑斯山。

busybox摘要

busybox被称为嵌入式linux的瑞士军刀。这句话是busybox自我介绍时提出的。Busybox将unix下的许多常见功能集成到一个小的可执行文件中。简单地说,您可以在这里找到unix或linux下常用的功能。然而,对于busybox的目标:嵌入式linux,大小是busybox非常重要的优化因素和限制。这些功能可能被阉割,但它们足以满足一般要求。Alpine向busybox添加了自己的包管理工具apk和其他功能,以创建一个时尚的小图像。Busybox是一个用C语言开发的基于GPL的开源项目。当前稳定的版本是1.28.4

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

主机

[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 19.3KB/s in 30s 2018-05-25 04:51:57 (32.4 KB/s) - 'busybox-x86_64' saved [1001112/1001112] [root@kong ~]#

设置busybox

Docker利用busybox创建基础镜像(base image) 版本确认

进入busybox查看版本和熟悉的linux工具。仔细观察会发现busybox自称是瑞士军刀。另一方面,如果瑞士军刀声称是linux中的busybox,它可能会引起批评。

[root@kong ~]# busybox BusyBox 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 detailed copyright 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, iostat, 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, sha3sum, 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在linux中是一个重要的概念,alpine还包含了“添加rootfs.tar.xz”这句话。接下来我们将学习如何生成一个简单的rootfs。

Docker利用busybox创建基础镜像(base image) 创建一个目录并输入 Docker利用busybox创建基础镜像(base image) 创建根文件夹

执行以下语句

Docker利用busybox创建基础镜像(base image) 执行日志

Docker利用busybox创建基础镜像(base image) 结果确认

Docker利用busybox创建基础镜像(base image) 将busybox复制到新创建的。/bin目录

因此,上述命令的链接对象存在

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

注意这里的相对路径,随后的次要相对路径将扩展到/下方,从而为新系统创建根。这也是从头开始构建Linux的重要操作之一。

Docker利用busybox创建基础镜像(base image) 简介:busybox & ndash列表模块列出busybox的所有模块,并在此基础上创建一个小根文件

[根@孔根]# busybox & ndash;列表-模块|wc -l

389

[根@孔根]#

准备文件

准备一份逐条记录的文件

Docker利用busybox创建基础镜像(base image) 创建基础图像。由于找不到特定内容,因此不会创建特定图像。此外,为了便于演示,在这里直接创建Dockerfile不是一个好主意。请不要在实践中这样做。如果当前目录中有100G文件,速度会非常慢而且不规则,不相关的项目需要清除。

Docker利用busybox创建基础镜像(base image)
来自斯克兰克思

有发件人,这个抓痕能拉吗?当前版本已经将其用作保留名称

[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 scratch Using default tag: latest Error response from daemon: 'scratch' is a reserved name [root@kong rootfs]#

在此文档中添加一行没有实际效果。让我们看看什么是划痕。

Docker利用busybox创建基础镜像(base image) 被构建并被发现产生了一个0字节的镜像文件,这也符合scratch的初衷。

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

到目前为止,我们已经理解,从零开始没有任何额外的补充。接下来,我们添加下面两个句子,比如阿尔卑斯山

Docker利用busybox创建基础镜像(base image) 我们的码头文件几乎是同样的三行。

Docker利用busybox创建基础镜像(base image) 这创建了一个1M的基于busybox的图像

Docker利用busybox创建基础镜像(base image)
运行和使用

使用docker run发现由该镜像启动的容器没有什么异常。

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

[概要/S2/]

本文介绍了如何使用busybox和从头机制来创建码头工人的基本形象和相关原则。本文使用BusyBox 1 . 28 . 1版创建了一个从瑞士军刀到瑞士指甲钳的1.01M的可用基本映像,您可以继续优化到多个K,但在10M以下,应更多考虑后续的可扩展性和功能性因素。然而,从另一个角度考虑,在集成这么多函数的同时,这些函数的不稳定因素也被集成。使用从头开始的机制,创建一个小的、不太依赖的上下文环境是非常有用的。


原文标题:(busybox是什么系统软件(三分钟把系统内核完全跑起来busybox介绍))

TAG:

最后编辑于: 2019-10-10 13:30:17作者:Admin_Long

一鸣叫兽-让你成为一个能熟练运用SEO核心技能的SEO技术人才!

  • 作者相关
  • 免费领取SEO教程,名额有限,先到先得!QQ:912037469
上一篇:中小企业推广的方法(3个快速有效的中小企业推广技巧)
下一篇:做上门女婿是什么意思现在还有人做吗(细说形成上门女婿的三大理由)
评论(条)

验证码:
'); })();