如何使用 Buildah 构建容器镜像
Project Atomic 通过他们在 Open Container Initiative(OCI)上的努力创造了一个名为 Buildah 的伟大工具。Buildah 能帮助创建、构建和更新,它支持 Docker 容器镜像以及 OCI 兼容镜像。
Buildah 处理构建容器镜像时无需安装完整的容器运行时或守护进程。这对建立容器的持续集成和持续交付管道尤其有用。
Buildah 使容器的文件系统可以直接供构建主机使用。这意味着构建工具在主机上可用就行,而不需要在容器镜像中可用,从而使构建更快速,镜像更小,更安全。Buildah 有 CentOS、Fedora 和 Debian 的软件包。
安装 Buildah
从 Fedora 26 开始 Buildah 可以使用 dnf
进行安装。
1 |
|
buildah
的当前版本为 0.16,可以通过以下命令显示。
1 |
|
基本命令
构建容器镜像的第一步是获取基础镜像,这是通过 Dockerfile 中的 FROM
语句完成的。Buildah 以类似的方式处理这个。
1 |
|
该命令将拉取 Fedora 的基础镜像并存储在主机上。通过执行以下操作可以检查主机上可用的镜像。
1 |
|
在拉取基础镜像后,有一个该镜像的运行容器实例,这是一个“工作容器”。
以下命令显示正在运行的容器。
1 |
|
Buildah 还提供了一个非常有用的命令来停止和删除当前正在运行的所有容器。
1 |
|
完整的命令列表可以使用 --help
选项。
1 |
|
构建一个 Apache Web 服务器容器镜像
让我们看看如何使用 Buildah 在 Fedora 基础镜像上安装 Apache Web 服务器,然后复制一个可供服务的自定义 index.html
。
首先让我们创建自定义的 index.html
。
1 |
|
然后在正在运行的容器中安装 httpd 包。
1 |
|
让我们将 index.html
复制到 /var/www/html/
。
1 |
|
然后配置容器入口点以启动 httpd。
1 |
|
现在为了使“工作容器”可用,commit
命令将容器保存到镜像。
1 |
|
hello-fedora-magazine 镜像现在可用,并且可以推送到仓库以供使用。
1 |
|
通过运行以下步骤,还可以使用 Buildah 来测试此镜像。
1 |
|
访问 http://localhost 将显示 “Hello Fedora Magazine !!!”
via: https://fedoramagazine.org/daemon-less-container-management-buildah/
作者:Ashutosh Sudhakar Bhakare 选题:lujun9972 译者:geekpi 校对:wxy