k8s

buildkit工具使用

1.介绍

containerd的ctr没有build,commit功能,上文介绍的nerdctl可以完成。其实还有个工具buildkit专门用来构建镜像。

  • 服务端为buildkitd,和runc或containerd后端进行连接,目前只支持这两个后端。
  • 客户端为buildctl,负责解析镜像构建文件Dockerfile,并向服务端发出构建指令,所以客户端可以和服务端不在一台机器上,也不需要root权限之类。
  • 服务端默认使用runc后端,但是建议使用containerd后端,这样构建出的镜像就会存在containerd的buildkit名字空间下。
  • buildctl客户端可用于 Linux、macOS 和 Windows,但buildkitd服务端目前仅可用于 Linux。

    2.安装

    wget https://github.com/moby/buildkit/releases/download/v0.9.3/buildkit-v0.9.3.linux-amd64.tar.gz
    mv bin buildkit
    cp build* /usr/bin

    3.启动

    buildkitd默认运行在前台的,如果需要后面加一个 &
    使用 –oci-worker=false –containerd-worker=true 参数,可以让buildkitd服务使用containerd后端

    buildkitd --oci-worker=false --containerd-worker=true & 

    file

    4.使用

    file

    构建镜像

    buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=. --output type=image,name=httpserver:v4
    frontend:使用dockerfile作为前端,也可以使用gateway.v0(未测试)。
    local context: 指向当前目录,这是Dockerfile执行构建时的路径上下文,比如在从目录中拷贝文件到镜像里
    local dockerfile:指向当前目录,表示Dockerfile在此目录
    output 的 name: 表示构建的镜像名称

file
镜像会存在本地containerd的buildkit命名空间下。

查看镜像

ctr -n buildkit i ls
nerdctl -n buildkit images

file

分类: k8s
0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
内联反馈
查看所有评论

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部
0
希望看到您的想法,请您发表评论x