目前常用的Linux發(fā)行版主要包括Debian/Ubuntu系列和CentOS/Fedora系
列污朽。
BusyBox
BusyBox是一個(gè)集成了一百多個(gè)最常用Linux命令和工具(如cat贪染、echo、grep、mount捏膨、telnet等)的精簡(jiǎn)工具箱免都,它只有幾 MB的大小,很方便進(jìn)行各種快速驗(yàn)證能耻,被譽(yù)為“Linux系統(tǒng)的瑞士軍刀”赏枚。BusyBox可運(yùn)行于多款POSIX環(huán)境的操作系統(tǒng)中,如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操作系統(tǒng)是一個(gè)面向安全的輕型Linux發(fā)行版戒职。它不同于通常的Linux發(fā)行版栗恩,Alpine采用了 musl libc和BusyBox以減小系統(tǒng)的體積和運(yùn)行時(shí)資源消耗,但功能上比BusyBox又完善得多洪燥,因此得到開源社區(qū)越來越多的青睞磕秤。在保持瘦身的同時(shí)乳乌,Alpine還提供了自己的包管理工具apk,可以通過https://pkgs.alpinelinux.org/packages 查詢包信息市咆,也可以通過apk命令直接查詢和安裝各種軟件钦扭。
Alpine Docker鏡像也繼承了Alpine Linux發(fā)行版的這些優(yōu)勢(shì)。相比于其他Docker鏡像床绪,它的容量非常小客情,僅僅只有幾MB左右(Ubuntu系列鏡像接近200MB),且擁有非常友好的包管理機(jī)制癞己。官方鏡像來自docker-alpine項(xiàng)目膀斋。
安裝軟件包:
$ apk add --no-cache <package>
Alpine中軟件安裝包的名字可能會(huì)與其他發(fā)行版有所不同,可以在https://pkgs.alpinelinux.org/packages網(wǎng)站搜索并確定安裝包的名稱痹雅。如果需要的安裝包不在主索引內(nèi)仰担,但是在測(cè)試或社區(qū)索引中,那么可以按照以下方法使用這些安裝包:
$ echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
$ apk --update add --no-cache <package>
Debian/Ubuntu
Debian和Ubuntu都是目前較為流行的Debian系的服務(wù)器操作系統(tǒng)绩社,十分適合研發(fā)場(chǎng)景摔蓝。DockerHub上提供了官方鏡像,國(guó)內(nèi)各大容器云服務(wù)也基本都提供了相應(yīng)的支持愉耙。
Debian是由GPL和其他自由軟件許可協(xié)議授權(quán)的自由軟件組成的操作系統(tǒng)贮尉,由Debian Project組織維護(hù)。眾多的Linux發(fā)行版朴沿,例如Ubuntu猜谚、Knoppix和Linspire及Xandros等,都基于Debian GNU/Linux赌渣。
Ubuntu是一個(gè)以桌面應(yīng)用為主的GNU/Linux操作系統(tǒng)魏铅,Ubuntu基于 Debian發(fā)行版和GNOME/Unity桌面環(huán)境,與Debian的不同在于它每6個(gè)月會(huì)發(fā)布一個(gè)新版本坚芜,每2年會(huì)推出一個(gè)長(zhǎng)期支持(LongTerm Support览芳,LTS)版本,一般支持3年鸿竖。
CentOS/Fedora
CentOS和Fedora都是基于Redhat的常見Linux分支沧竟。CentOS是目前企業(yè)級(jí)服務(wù)器的常用操作系統(tǒng);Fedora則主要面向個(gè)人桌面用戶千贯。
Fedora是由Fedora Project社區(qū)開發(fā)屯仗,紅帽公司贊助的Linux發(fā)行版。它的目標(biāo)是創(chuàng)建一套新穎搔谴、多功能并且自由和開源的操作系統(tǒng)魁袜。