实战案例(操作系统)
- 1、BusyBox
- 1.1、使用官方镜像
- 1.2、相关资源
- 2、Alpine
- 2.1、使用官方镜像
- 2.2、迁移至Alpine基础镜像
- 2.3、相关资源
- 3、Ubuntu
- 3.1、使用官方镜像
- 3.2、相关资源
1、BusyBox
BusyBox是一个集成了一百多个最常用Linux命令(如cat、echo、grep、mount、telnet等)的精简工具箱,磁盘大小在1~5MB,被誉为“Linux系统的瑞士军刀”。
1.1、使用官方镜像
可以直接使用PusyBox的官方镜像启动容器,并运行busybox命令查看系统支持的命令:
dockerrun-it--rmbusyboxsh/# busybox --list[[[acpid add-shell addgroup adduser adjtimex...可以使用docker images命令看到BusyBox镜像只有4.86MB大小,同时提供了基础的Linux指令集:
1.2、相关资源
- BusyBox官网:https://busybox.net/。
- BusyBox官方镜像:https://hub.docker.com/_/busybox/。
2、Alpine
作为一款轻量级的Linux发行版,Alpine操作系统专注于安全性、性能和资源效率。基于Musl libc和BusyBox构建的Alpine致力于缩减系统体积和降低运行时资源消耗。相较于BusyBox,Alpine功能更齐全,提供了包管理工具apk,以便用户轻松查询和安装软件包。Alpine Docker镜像继承了Alpine Linux发行版的诸多优势,其体积远小于其他镜像,仅约5MB(相较之下,Ubuntu系列镜像的大小接近200MB)。
目前,Docker官方推荐将Alpine作为默认基础镜像环境,这将带来诸多好处,如加快镜像下载速度、提高镜像安全性、便捷地在主机之间切换以及减少磁盘空间占用等。
如下所示是官方镜像的大小比较,可以看到Alpine镜像在空间占用方面的显著优势:
2.1、使用官方镜像
由于镜像很小,下载时间几乎可以忽略,因此读者可以直接使用docker [container] run指令直接运行一个Alpine容器,并指定运行的指令,例如:
dockerrun alpineecho'hello world from Apline!'在本地没有提前拉取镜像的情况下,直接执行echo命令仅需要3s左右:
此轻量级镜像不仅使用起来更便捷,网络带宽压力也会相应减少。读者可以将Aplpine Linux作为基础镜像,以下Dockerfile将生成大约36MB大小的镜像:
而对于同样的需求,使用Ubuntu作为基础镜像,则需要生成大约145MB大小的镜像:
2.2、迁移至Alpine基础镜像
目前,大部分Docker官方镜像都已经支持Alpine作为基础镜像,可以很容易地进行迁移。例如:ubuntu/debian→alpine、python:3.7→python:3.7-alpine、ruby:2.6→ruby:2.6-alpine。
另外,如果使用Alpine镜像,安装软件包时可以使用apk工具,例如:
Alpine中软件安装包的名字可能会与其他发行版有所不同,读者可以在https://pkgs.alpinelinux.org/packages网站搜索并确定安装包名称。如果需要的安装包不在主索引内,而在测试或社区索引中,则需要更新仓库列表,如下所示:
2.3、相关资源
Apline官网:http://alpinelinux.org/。
Apline官方仓库:https://github.com/alpinelinux。
Apline官方镜像:https://hub.docker.com/_/alpine/。
3、Ubuntu
Ubuntu是一款基于Debian架构的Linux操作系统,应用领域广泛,覆盖从桌面到云计算等场景。作为最受欢迎的操作系统之一,Ubuntu很好地支持容器技术,包括Docker、Kubernetes等容器软件。Ubuntu的名字源于非洲南部的祖鲁语或豪萨语中的ubuntu一词,寓意着“人性”和“我的存在源于大家的存在”,这体现了非洲传统文化中的“仁爱”价值观。
3.1、使用官方镜像
可以直接使用Docker Hub上的Ubuntu镜像快速启动容器:
dockerrun-it--rmubuntubash镜像包括了Ubuntu的最小安装,读者可以根据需要使用apt-get命令安装更多软件,例如在容器中安装vim软件:
root@xx:/# apt-get update; apt-get install -y vim可以通过Docker Hub查看镜像中的文件及包信息,无须下载后再解析查看。例如,打开ubuntu:23.04的镜像页面,单击Layers,可见官方镜像的分层信息,如图所示。
单击右侧的Packages(括号内为软件包个数),即可查看或搜索镜像内的软件包,如图所示。
3.2、相关资源
- Ubuntu官网:https://ubuntu.com。
- Ubuntu官方镜像:https://hub.docker.com/_/ubuntu/。