如何使用 Buildah 构建容器镜像

Project Atomic 通过他们在 Open Container Initiative(OCI)上的努力创造了一个名为 Buildah 的伟大工具。Buildah 能帮助创建、构建和更新,它支持 Docker 容器镜像以及 OCI 兼容镜像。

Buildah 处理构建容器镜像时无需安装完整的容器运行时或守护进程。这对建立容器的持续集成和持续交付管道尤其有用。

Buildah 使容器的文件系统可以直接供构建主机使用。这意味着构建工具在主机上可用就行,而不需要在容器镜像中可用,从而使构建更快速,镜像更小,更安全。Buildah 有 CentOS、Fedora 和 Debian 的软件包。

安装 Buildah

从 Fedora 26 开始 Buildah 可以使用 dnf 进行安装。

 
 
  1. $ sudo dnf install buildah -y

buildah 的当前版本为 0.16,可以通过以下命令显示。

 
 
  1. $ buildah --version

基本命令

构建容器镜像的第一步是获取基础镜像,这是通过 Dockerfile 中的 FROM 语句完成的。Buildah 以类似的方式处理这个。

 
 
  1. $ sudo buildah from fedora

该命令将拉取 Fedora 的基础镜像并存储在主机上。通过执行以下操作可以检查主机上可用的镜像。

 
 
  1. $ sudo buildah images
  2. IMAGE ID IMAGE NAME CREATED AT SIZE
  3. 9110ae7f579f docker.io/library/fedora:latest Mar 7, 2018 20:51 234.7 MB

在拉取基础镜像后,有一个该镜像的运行容器实例,这是一个“工作容器”。

以下命令显示正在运行的容器。

 
 
  1. $ sudo buildah containers
  2. CONTAINER ID BUILDER IMAGE ID IMAGE NAME
  3. CONTAINER NAME
  4. 6112db586ab9 * 9110ae7f579f docker.io/library/fedora:latest fedora-working-container

Buildah 还提供了一个非常有用的命令来停止和删除当前正在运行的所有容器。

 
 
  1. $ sudo buildah rm --all

完整的命令列表可以使用 --help 选项。

 
 
  1. $ buildah --help

构建一个 Apache Web 服务器容器镜像

让我们看看如何使用 Buildah 在 Fedora 基础镜像上安装 Apache Web 服务器,然后复制一个可供服务的自定义 index.html

首先让我们创建自定义的 index.html

 
 
  1. $ echo "Hello Fedora Magazine !!!" > index.html

然后在正在运行的容器中安装 httpd 包。

 
 
  1. $ sudo buildah from fedora
  2. $ sudo buildah run fedora-working-container dnf install httpd -y

让我们将 index.html 复制到 /var/www/html/

 
 
  1. $ sudo buildah copy fedora-working-container index.html /var/www/html/index.html

然后配置容器入口点以启动 httpd。

 
 
  1. $ sudo buildah config --entrypoint "/usr/sbin/httpd -DFOREGROUND" fedora-working-container

现在为了使“工作容器”可用,commit 命令将容器保存到镜像。

 
 
  1. $ sudo buildah commit fedora-working-container hello-fedora-magazine

hello-fedora-magazine 镜像现在可用,并且可以推送到仓库以供使用。

 
 
  1. $ sudo buildah images
  2. IMAGE ID IMAGE NAME CREATED
  3. AT SIZE
  4. 9110ae7f579f docker.io/library/fedora:latest
  5. Mar 7, 2018 22:51 234.7 MB
  6. 49bd5ec5be71 docker.io/library/hello-fedora-magazine:latest
  7. Apr 27, 2018 11:01 427.7 MB

通过运行以下步骤,还可以使用 Buildah 来测试此镜像。

 
 
  1. $ sudo buildah from --name=hello-magazine docker.io/library/hello-fedora-magazine
  2. $ sudo buildah run hello-magazine

访问 http://localhost 将显示 “Hello Fedora Magazine !!!”


原文发布时间为:2018-05-21

本文来自云栖社区合作伙伴“Linux中国开源社区”,了解相关信息可以关注“Linux中国开源社区”。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值