Skip to content

使用 nerdctl 构建镜像

使用 nerdctl 构建镜像时,依赖 buildkitd 服务。buildkitd 是一个功能强大的容器镜像构建工具,nerdctl 可以借助它来构建容器镜像

  1. 下载最新版 nerdctl full 套件(内含 buildkitd, buildctl 等)
sh
curl -LO https://github.com/containerd/nerdctl/releases/download/v1.7.2/nerdctl-full-1.7.2-linux-amd64.tar.gz

# 解压
tar -xzf nerdctl-full-1.7.2-linux-amd64.tar.gz ./nerdctl-full-1.7.2

# 进入目录
cd nerdctl-full-1.7.2

# 把组件复制到 /usr/local/bin
sudo cp -r bin/\* /usr/local/bin/
  1. 创建 buildkitd.toml 文件
sh
mkdir -p /etc/buildkit/
cat > /etc/buildkit/buildkitd.toml < EOF
[registry."docker.io"]
mirrors = ["https://registry.docker-cn.com"]
EOF
  1. 开启 buildkitd
sh
# 启动 buildkitd(后台进程)
nohup buildkitd --config /etc/buildkit/buildkitd.toml > /var/log/buildkitd.log 2>&1 &

# 检查服务是否 OK
ps aux | grep buildkitd # 确保 buildkitd 正在跑
which buildctl # 确保 buildctl 已加入 PATH
  1. 构建一个镜像
sh
nerdctl build -t ccr.ccs.tencentyun.com/lucahimself/msapp-order:1.1-amd64 .
  1. 关闭 buildkitd
sh
pkill buildkitd
ps aux | grep buildkitd # 应该没了