你遇到的问题

[root@vms72 qyq]# nerdctl build -t centos:v1 . -f dockerfile
ERRO[0000] `buildctl` needs to be installed and `buildkitd` needs to be running, see https://github.com/moby/buildkit  error="failed to ping to host unix:///run/buildkit-default/buildkitd.sock: exec: \"buildctl\": executable file not found in $PATH\nfailed to ping to host unix:///run/buildkit/buildkitd.sock: exec: \"buildctl\": executable file not found in $PATH"
FATA[0000] no buildkit host is available, tried 2 candidates: failed to ping to host unix:///run/buildkit-default/buildkitd.sock: exec: "buildctl": executable file not found in $PATH
failed to ping to host unix:///run/buildkit/buildkitd.sock: exec: "buildctl": executable file not found in $PATH 
[root@vms72 qyq]# 


BuildKit 完整安装步骤


1. 拉取 buildkit 镜像(通过已有的 SWR 镜像源)

nerdctl pull moby/buildkit:latest

2. 提取二进制文件到系统路径

nerdctl create --name buildkit-tmp moby/buildkit:latest
nerdctl cp buildkit-tmp:/usr/bin/buildctl  /usr/local/bin/buildctl
nerdctl cp buildkit-tmp:/usr/bin/buildkitd /usr/local/bin/buildkitd
chmod +x /usr/local/bin/buildctl /usr/local/bin/buildkitd
nerdctl rm buildkit-tmp

3. 创建 systemd 服务

cat > /etc/systemd/system/buildkitd.service <<'EOF'
[Unit]
Description=BuildKit
Documentation=https://github.com/moby/buildkit

[Service]
ExecStart=/usr/local/bin/buildkitd \
  --oci-worker=false \
  --containerd-worker=true \
  --containerd-worker-namespace=k8s.io
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF



4. 配置 BuildKit 的 Docker Hub 镜像源(关键步骤)

mkdir -p /etc/buildkit
cat > /etc/buildkit/buildkitd.toml <<'EOF'
[registry."docker.io"]
  mirrors = ["https://092e211b458010910f65c00d50ae8fc0.mirror.swr.myhuaweicloud.com"]
EOF

5. 启动服务

systemctl daemon-reload
systemctl enable --now buildkitd

6.再次构建镜像,提示成功。

[root@vms72 qyq]# nerdctl build -t centos:v1 . -f dockerfile
[+] Building 4.7s (9/9) FINISHED                                                                                                                
 => [internal] load build definition from dockerfile                                                                                       0.0s
 => => transferring dockerfile: 239B                                                                                                       0.0s
 => WARN: MaintainerDeprecated: Maintainer instruction is deprecated in favor of using label (line 2)                                      0.0s
 => [internal] load metadata for docker.io/library/centos:7                                                                                1.5s
 => [internal] load .dockerignore                                                                                                          0.0s
 => => transferring context: 2B                                                                                                            0.0s
 => [1/4] FROM docker.io/library/centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4                          0.0s
 => => resolve docker.io/library/centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4                          0.0s
 => [internal] load build context                                                                                                          0.0s
 => => transferring context: 34B                                                                                                           0.0s
 => CACHED [2/4] RUN rm -rf /etc/yum.repos.d/*                                                                                             0.0s
 => CACHED [3/4] COPY centos7.repo /etc/yum.repos.d/                                                                                       0.0s
 => CACHED [4/4] RUN yum install net-tools -y &&     yum install iproute -y &&     yum clean all                                           0.0s
 => exporting to docker image format                                                                                                       3.1s
 => => exporting layers                                                                                                                    0.0s
 => => exporting manifest sha256:f778a52af881ffbead3021eaed16dae2929f97f41d866886603292931a19141e                                          0.0s
 => => exporting config sha256:6de7a1d32ff04450eb2974a8c4cf9841e5252a9b690cfb6a9585fb3e05a895d9                                            0.0s
 => => sending tarball                                                                                                                     3.1s
unpacking docker.io/library/centos:v1 (sha256:f778a52af881ffbead3021eaed16dae2929f97f41d866886603292931a19141e)...
Loaded image: docker.io/library/centos:v1

[root@vms72 qyq]# nerdctl images|grep v1
centos           v1        f778a52af881    11 minutes ago    linux/amd64    254.3MB    84.17MB
[root@vms72 qyq]# 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐