在容器中使用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

相关推荐

  1. Pod使用Golang构建并推送镜像镜像仓库

    2024-02-07 11:36:01       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 11:36:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 11:36:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 11:36:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 11:36:01       18 阅读

热门阅读

  1. 经典逻辑面试题--部落的生死门

    2024-02-07 11:36:01       30 阅读
  2. 【TCP与UDP】day4

    2024-02-07 11:36:01       32 阅读
  3. c#内置委托

    2024-02-07 11:36:01       30 阅读
  4. 一些学习的总结帖子

    2024-02-07 11:36:01       29 阅读
  5. Linux在云计算领域的重要作用

    2024-02-07 11:36:01       37 阅读