温馨提示:本文最后更新于
2025-09-29 17:51:18,某些文章具有时效性,若有错误或已失效,请在下方留言。由于使用的是 M1 型号的 Mac 电脑,docker 构建出来的镜像是 ARM 架构的。如果要构建其他架构的镜像,需要使用 docker 的 buildx 插件。

启用 buildx 插件
buildx 插件是 docker 在 19.03 版本之后引入的,需要确保 docker 的版本不低于 19.03。
$ docker -v
Docker version 28.3.3, build 980b856
在终端中输入以下的命令,启用 buildx 插件。
$ export DOCKER_CLI_EXPERIMENTAL=enabled
验证是否开启
$ docker buildx version
github.com/docker/buildx v0.25.0 faaea65da4ba0e58a13cd9cadcb950c51cf3b3c9
创建构建器
在终端输入以下命令,创建一个构建器,构建器的名称为 StewedNoodlesBuilder。
# StewedNoodlesBuilder 为构建器的名称
$ docker buildx create --use --name StewedNoodlesBuilder
StewedNoodlesBuilder
启动构建器
启动构建器
$ docker buildx inspect StewedNoodlesBuilder --bootstrap
Name: StewedNoodlesBuilder
Driver: docker-container
Last Activity: 2025-09-29 02:11:15 +0000 UTC
Nodes:
Name: stewednoodlesbuilder0
Endpoint: orbstack
Status: running
BuildKit daemon flags: --allow-insecure-entitlement=network.host
BuildKit version: v0.24.0
Platforms: linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/arm/v7, linux/arm/v6
Labels:
org.mobyproject.buildkit.worker.executor: oci
org.mobyproject.buildkit.worker.hostname: 335cb2f6cc77
org.mobyproject.buildkit.worker.network: host
org.mobyproject.buildkit.worker.oci.process-mode: sandbox
org.mobyproject.buildkit.worker.selinux.enabled: false
org.mobyproject.buildkit.worker.snapshotter: overlayfs
GC Policy rule#0:
All: false
Filters: type==source.local,type==exec.cachemount,type==source.git.checkout
Keep Duration: 48h0m0s
Max Used Space: 488.3MiB
GC Policy rule#1:
All: false
Keep Duration: 1440h0m0s
Reserved Space: 7.451GiB
Max Used Space: 54.95GiB
Min Free Space: 13.97GiB
GC Policy rule#2:
All: false
Reserved Space: 7.451GiB
Max Used Space: 54.95GiB
Min Free Space: 13.97GiB
GC Policy rule#3:
All: true
Reserved Space: 7.451GiB
Max Used Space: 54.95GiB
Min Free Space: 13.97GiB
查看支持的 CPU 架构
$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
StewedNoodlesBuilder docker-container
\_ stewednoodlesbuilder0 \_ orbstack running v0.24.0 linux/amd64 (+2), linux/arm64, linux/arm (+2), linux/ppc64le, (4 more)
default docker
\_ default \_ default running v0.23.2 linux/amd64 (+2), linux/arm64, linux/arm (+2), linux/ppc64le, (4 more)
orbstack* docker
\_ orbstack \_ orbstack running v0.23.2 linux/amd64 (+2), linux/arm64, linux/arm (+2), linux/ppc64le, (4 more)
构建镜像
这里给予 dockerfile 进行构建,并将构建好镜像推送到阿里云 ARC 镜像服务。
# 登录Registry实例
$ docker login --username=stewednoodles crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com
# 构建镜像并推送
$ docker buildx build -t crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com/stewednoodles/susar --platform=linux/arm64,linux/amd64 . --push
命令执行完成之后,即可看到我们上传的镜像。

可以通过命令行查看每个镜像的信息
$ docker buildx imagetools inspect crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com/stewednoodles/susar
Name: crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com/stewednoodles/susar:latest
MediaType: application/vnd.oci.image.index.v1+json
Digest: sha256:7ff14e79e7d2bf823dd22c3e68de02afd4e7bb4eb92350edeba96cad96fba506
Manifests:
Name: crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com/stewednoodles/susar:latest@sha256:d3e4941cf24063a00cd710ec93ba8f6d163738d2c5cd914aa68e337841706295
MediaType: application/vnd.oci.image.manifest.v1+json
Platform: linux/arm64
Name: crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com/stewednoodles/susar:latest@sha256:7d6c27ba6d4642a17c52e7f2d41e315deaf0b40b7dabb8936776768b1161a644
MediaType: application/vnd.oci.image.manifest.v1+json
Platform: linux/amd64
Name: crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com/stewednoodles/susar:latest@sha256:f3c6fdecd11ffcdc782afb98996e957c0aac32b42c4c5c4ec799e20a9539a5a9
MediaType: application/vnd.oci.image.manifest.v1+json
Platform: unknown/unknown
Annotations:
vnd.docker.reference.digest: sha256:d3e4941cf24063a00cd710ec93ba8f6d163738d2c5cd914aa68e337841706295
vnd.docker.reference.type: attestation-manifest
Name: crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com/stewednoodles/susar:latest@sha256:7727f0763a478b1f91af6029e6c9c651d5779ffe054c770a99a78d2ff75065b3
MediaType: application/vnd.oci.image.manifest.v1+json
Platform: unknown/unknown
Annotations:
vnd.docker.reference.digest: sha256:7d6c27ba6d4642a17c52e7f2d41e315deaf0b40b7dabb8936776768b1161a644
vnd.docker.reference.type: attestation-manifest
本地拉取镜像
登录阿里云Docker Registry
$ docker login --username=stewednoodles crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com
从Registry中拉取镜像
$ docker pull crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com/stewednoodles/susar
运行镜像
$ docker run -d --restart=always -p 5000:5000 crpi-6f31313pi8im9neg.cn-beijing.personal.cr.aliyuncs.com/stewednoodles/susar:latest
© 版权声明
THE END











暂无评论内容