使用容器工作是很多用户和开发者的日常任务。容器开发者经常需要频繁地(重新)构建容器镜像。如果你开发容器,你有想过减小镜像的大小吗?较小的镜像有一些好处。在下载的时候所需要的带宽更少,而且在云环境中运行的时候也可以节省开销。而且在 Fedora CoreOS、IoT 以及Silverblue 上使用较小的容器镜像可以提升整体系统性能,因为这些操作系统严重依赖于容器工作流。这篇文章将会提供一些减小容器镜像大小的技巧。
工具
以下例子所用到的主机操作系统是 Fedora Linux 33。例子使用 Podman 3.1.0 和Buildah 1.2.0。Podman 和 Buildah 已经预装在大多数 Fedora Linux 变种中。如果你没有安装 Podman 和 Buildah,可以用下边的命令安装:
$ sudo dnf install -y podman buildah
任务
从一个基础的例子开始。构建一个满足以下需求的 web 容器:
- 容器必须基于 Fedora Linux
- 使用 Apache httpd web 服务器
- 包含一个定制的网站
- 容器应该比较小
下边的步骤也适用于比较复杂的镜像。
设置
首先,创建一个工程目录。这个目录将会包含你的网站和容器文件:
$ mkdir smallerContainer
$ cd smallerContainer
$ mkdir files
$ touch files/index.html
制作一个简单的登录页面。对于这个演示,你可以将下面的 HTML 复制到 index.html
文件中。
Container Page
Container Page
Fedora
- Fedora Project
- Fedora D