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

启用 buildx 插件
buildx
插件是 docker 在 19.03
版本之后引入的,需要确保 docker 的版本不低于 19.03。
➜ ~ docker -v
Docker version 27.3.1, build ce12230

在终端中输入以下的命令,启用 buildx 插件。
export DOCKER_CLI_EXPERIMENTAL=enabled

验证是否开启
➜ ~ docker buildx version
github.com/docker/buildx v0.17.1 257815a6fbaee88976808020bf04274388275ae8

创建构建器
在终端输入以下命令,创建一个构建器,构建器的名称为 ourhonourbuilder
。
# ourhonourbuilder 为构建器的名称
➜ ~ docker buildx create --use --name ourhonourbuilder
ourhonourbuilder
启动构建器
启动构建器
➜ ~ docker buildx inspect ourhonourbuilder --bootstrap
[+] Building 24.2s (1/1) FINISHED
=> [internal] booting buildkit 24.2s
=> => pulling image moby/buildkit:buildx-stable-1 23.7s
=> => creating container buildx_buildkit_ourhonourbuilder0 0.5s
Name: ourhonourbuilder
Driver: docker-container
Last Activity: 2024-10-31 02:22:34 +0000 UTC
查看支持的 CPU 架构
➜ ~ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
ourhonourbuilder* docker-container
\_ ourhonourbuilder0 \_ orbstack running v0.16.0 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/arm/v7, linux/arm/v6
default docker
\_ default \_ default running v0.16.0 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/arm/v7, linux/arm/v6
orbstack docker
\_ orbstack \_ orbstack running v0.16.0 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/arm/v7, linux/arm/v6
构建镜像
这里给予 dockerfile 进行构建,并将构建好镜像推送到阿里云 ARC 镜像
服务。
# 登录Registry实例
# docker login --username=tadpolecasting crpi-jqvcwrlyhb9wwayw.cn-beijing.personal.cr.aliyuncs.com
sudo docker login --username=<账户名称> <网络域名>
# 构建镜像并推送
# docker buildx build -t crpi-jqvcwrlyhb9wwayw.cn-beijing.personal.cr.aliyuncs.com/ourhonour/flaskapi --platform=linux/arm64,linux/amd64 . --push
docker buildx build -t <网络域名>/<命名空间>/flaskapi --platform=linux/arm64,linux/amd64 . --push
命令执行完成之后,即可看到我们上传的镜像。

可以通过命令行查看每个镜像的信息
docker buildx imagetools inspect crpi-jqvcwrlyhb9wwayw.cn-beijing.personal.cr.aliyuncs.com/ourhonour/flaskapi
Name: crpi-jqvcwrlyhb9wwayw.cn-beijing.personal.cr.aliyuncs.com/ourhonour/flaskapi:latest
MediaType: application/vnd.oci.image.index.v1+json
Digest: sha256:56df128133f55acc3dcc0f16230e78fb8264f208f900916f4ebb7b9bed58607e
Manifests:
Name: crpi-jqvcwrlyhb9wwayw.cn-beijing.personal.cr.aliyuncs.com/ourhonour/flaskapi:latest@sha256:373448de00d8f0601274582d308e878bb9dc8409c6651906646158bb1d0fd365
MediaType: application/vnd.oci.image.manifest.v1+json
Platform: linux/arm64
Name: crpi-jqvcwrlyhb9wwayw.cn-beijing.personal.cr.aliyuncs.com/ourhonour/flaskapi:latest@sha256:165feb58977dd08e138433dedfaf07eb7d083affd5aa27312e43b4228ee1ddff
MediaType: application/vnd.oci.image.manifest.v1+json
Platform: linux/amd64
本地拉取镜像
登录阿里云Docker Registry
docker login --username=tadpolecasting crpi-jqvcwrlyhb9wwayw.cn-beijing.personal.cr.aliyuncs.com
从Registry中拉取镜像
docker pull crpi-jqvcwrlyhb9wwayw.cn-beijing.personal.cr.aliyuncs.com/ourhonour/flaskapi
运行镜像
docker run -d --restart=always -p 5000:5000 crpi-jqvcwrlyhb9wwayw.cn-beijing.personal.cr.aliyuncs.com/ourhonour/flaskapi
© 版权声明
THE END
暂无评论内容