目前常用的Linux发行版主要包括Debian/Ubuntu系列和CentOS/Fedora系
列。
BusyBox
BusyBox是一个集成了一百多个最常用Linux命令和工具(如cat、echo、grep、mount、telnet等)的精简工具箱,它只有几 MB的大小,很方便进行各种快速验证,被誉为“Linux系统的瑞士军刀”。BusyBox可运行于多款POSIX环境的操作系统中,如Linux(包括Android)、Hurd、FreeBSD等。
[root@localhost label-maintainer]# docker run -it --rm busybox /bin/sh
/ #
/ #
. chown dumpleases ftpput ip lsscsi nologin renice shift time unshare
: chpasswd echo fuser ipaddr lsusb nproc reset showkey timeout unxz
[ chpst ed getconf ipcalc lzcat nsenter resize shred times unzip
[[ chroot egrep getopt ipcrm lzma nslookup resume shuf tmp/ uptime
acpid chrt eject getopts ipcs lzop ntpd return slattach top users
add-shell chvt env getty iplink makedevs od rev sleep touch usleep
addgroup cksum envdir grep ipneigh makemime openvt rm smemcap tr usr/
adduser clear envuidgid groups iproute man partprobe rmdir softlimit traceroute uudecode
adjtimex cmp etc/ gunzip iprule md5sum passwd rmmod sort traceroute6 uuencode
alias comm ether-wake gzip iptunnel mdev paste root/ source trap var/
ar command eval halt jobs mesg patch route split tree vconfig
arch conspy exec hash kbd_mode microcom pgrep rpm ssl_client true vi
arp continue exit hd kill mim pidof rpm2cpio start-stop-daemon truncate vlock
arping cp expand hdparm killall mkdir ping rtcwake stat ts volname
ascii cpio export head killall5 mkdosfs ping6 run-init strings tsort w
ash crc32 expr help klogd mke2fs pipe_progress run-parts stty tty wait
awk crond factor hexdump last mkfifo pivot_root runlevel su ttysize wall
base32 crontab fakeidentd hexedit less mkfs.ext2 pkill runsv sulogin tunctl watch
base64 cryptpw fallocate history let mkfs.minix pmap runsvdir sum type watchdog
basename cttyhack false home/ lib/ mkfs.vfat popmaildir rx sv ubiattach wc
bc cut fatattr hostid lib64/ mknod poweroff script svc ubidetach wget
beep date fbset hostname link mkpasswd powertop scriptreplay svlogd ubimkvol which
bg dc fbsplash httpd linux32 mkswap printenv sed svok ubirename who
bin/ dd fdflush hush linux64 mktemp printf seedrng swapoff ubirmvol whoami
blkdiscard deallocvt fdformat hwclock linuxrc modinfo proc/ sendmail swapon ubirsvol whois
blkid delgroup fdisk i2cdetect ln modprobe ps seq switch_root ubiupdatevol xargs
blockdev deluser fg i2cdump loadfont more pscan set sync udhcpc xxd
bootchartd depmod fgconsole i2cget loadkmap mount pstree setarch sys/ udhcpc6 xz
brctl dev/ fgrep i2cset local mountpoint pwd setconsole sysctl udhcpd xzcat
break devmem find i2ctransfer logger mpstat pwdx setfattr syslogd udpsvd yes
bunzip2 df findfs id login mt raidautorun setfont tac uevent zcat
busybox dhcprelay flock ifconfig logname mv rdate setkeycodes tail ulimit zcip
bzcat diff fold ifdown logread nameif rdev setlogcons tar umask
bzip2 dirname free ifenslave losetup nanddump read setpriv taskset umount
cal dmesg freeramdisk ifplugd lpd nandwrite readahead setserial tc unalias
cat dnsd fsck ifup lpq nbd-client readlink setsid tcpsvd uname
cd dnsdomainname fsck.minix inetd lpr nc readonly setuidgid tee unexpand
chat dos2unix fsfreeze init ls netstat readprofile sh telnet uniq
chattr dpkg fstrim insmod lsattr nice realpath sha1sum telnetd unix2dos
chdir dpkg-deb fsync install lsmod nl reboot sha256sum test unlink
chgrp du ftpd ionice lsof nmeter reformime sha3sum tftp unlzma
chmod dumpkmap ftpget iostat lspci nohup remove-shell sha512sum tftpd unset
/ #
Alpine
Alpine操作系统是一个面向安全的轻型Linux发行版。它不同于通常的Linux发行版,Alpine采用了 musl libc和BusyBox以减小系统的体积和运行时资源消耗,但功能上比BusyBox又完善得多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine还提供了自己的包管理工具apk,可以通过https://pkgs.alpinelinux.org/packages 查询包信息,也可以通过apk命令直接查询和安装各种软件。
Alpine Docker镜像也继承了Alpine Linux发行版的这些优势。相比于其他Docker镜像,它的容量非常小,仅仅只有几MB左右(Ubuntu系列镜像接近200MB),且拥有非常友好的包管理机制。官方镜像来自docker-alpine项目。
安装软件包:
$ apk add --no-cache <package>
Alpine中软件安装包的名字可能会与其他发行版有所不同,可以在https://pkgs.alpinelinux.org/packages网站搜索并确定安装包的名称。如果需要的安装包不在主索引内,但是在测试或社区索引中,那么可以按照以下方法使用这些安装包:
$ echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
$ apk --update add --no-cache <package>
Debian/Ubuntu
Debian和Ubuntu都是目前较为流行的Debian系的服务器操作系统,十分适合研发场景。DockerHub上提供了官方镜像,国内各大容器云服务也基本都提供了相应的支持。
Debian是由GPL和其他自由软件许可协议授权的自由软件组成的操作系统,由Debian Project组织维护。众多的Linux发行版,例如Ubuntu、Knoppix和Linspire及Xandros等,都基于Debian GNU/Linux。
Ubuntu是一个以桌面应用为主的GNU/Linux操作系统,Ubuntu基于 Debian发行版和GNOME/Unity桌面环境,与Debian的不同在于它每6个月会发布一个新版本,每2年会推出一个长期支持(LongTerm Support,LTS)版本,一般支持3年。
CentOS/Fedora
CentOS和Fedora都是基于Redhat的常见Linux分支。CentOS是目前企业级服务器的常用操作系统;Fedora则主要面向个人桌面用户。
Fedora是由Fedora Project社区开发,红帽公司赞助的Linux发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。