在容器中使用buildah构建镜像

在这里插入图片描述

简介

buildah是一个构建OCI标准镜像的工具,可以用来替代docker build

在常见的linux发行版中可直接通过包管理工具安装使用

# centos
yum install buildah

# ubuntu/debian
apt install buildah

# alpine
apk add buildah

其他发行版安装方法详见 github本文仅记录如何在容器中使用buildah

后来在构建复杂镜像时,发现还有不少坑待解决,本文仅供参考

buildah容器中使用

quay.io/containers/buildah是官方提供的镜像,不加参数直接启动容器,会出现Operation not permitted和写入相关错误

加上下面三个参数后可正常使用

# 运行buildah容器
docker run -it \
--security-opt seccomp=unconfined \
--security-opt apparmor=unconfined \
-v /tmp/buildah:/var/lib/containers  \
quay.io/containers/buildah:latest sh

# 进入容器sh后,使用buildah命令
buildah -h

参数解释
--security-opt seccomp=unconfined 取消容器对系统调用限制
--security-opt apparmor=unconfined 取消容器的使用资源限制
-v /tmp/buildah:/var/lib/containers 必须挂载一个目录到/var/lib/containers

alipine容器中使用

其他centeos、ubuntu、debian等liunx容器步骤一致

# 运行alpine容器
docker run -it \
--security-opt seccomp=unconfined \
--security-opt apparmor=unconfined \
-v /tmp/buildah:/var/lib/containers  \
alpine sh

# 进入容器sh后操作
# 国内可更换下软件源
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

# 安装buildah 
apk update && apk add buildah

# 使用buildah命令
buildah -h

https://github.com/containers/buildah/issues/2262
https://github.com/containers/buildah/issues/867
https://github.com/containers/buildah/blob/main/install.md

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值