使用nerdctl+buildkitd编译docker镜像

简介

如果你不想使用docker的话nerdctl+containerd是完全可以代替docker的存在,今天介绍下怎么使用nerdctl去编译一个docker镜像。

操作

首先下载nerdctl

wget https://github.bboysoul.cn/containerd/nerdctl/releases/download/v1.0.0/nerdctl-1.0.0-linux-arm64.tar.gz

tar -zxvf nerdctl-1.0.0-linux-arm64.tar.gz

mv nerdctl /bin/

之后下载buildkit

wget https://github.com/moby/buildkit/releases/download/v0.10.5/buildkit-v0.10.5.linux-arm64.tar.gz

tar -zxvf buildkit-v0.10.5.linux-arm64.tar.gz

mv ./bin/* /usr/local/bin/

启动buildkitd

./buildkitd --containerd-worker-addr=/run/k3s/containerd/containerd.sock

因为树莓派上的containerd是使用k3s启动的,所以要指定下containerd的sock文件路径

开始编译

nerdctl -H /run/k3s/containerd/containerd.sock build . -t git.bboysoul.cn/container/prometheus-pve-exporter:2.2.4

登录镜像仓库

nerdctl -H /run/k3s/containerd/containerd.sock login git.bboysoul.cn

推送镜像

nerdctl -H /run/k3s/containerd/containerd.sock push git.bboysoul.cn/container/prometheus-pve-exporter:2.2.4

其实所有的操作都只要把原本的docker命令替换成nerdctl就可以了,还是很简单的

欢迎关注我的博客 www.bboy.app

Have Fun