docker使用buildx打包多版本镜像
开启 Docker 的 buildx 功能
首先,我们需要开启 Docker 的 buildx 功能。这可以通过修改 /etc/docker/daemon.json
文件来实现。将下面的内容添加到文件中:
{
"experimental": "enabled"
}
创建并启动多平台构建器
接下来,我们需要创建并启动一个多平台构建器。可以通过下面的命令来完成:
# 创建 builder 实例
docker buildx create --use --name mybuilder
这个命令会创建一个名为 mybuilder
的 builder 实例,并且将其设置为当前使用的实例。
接下来,我们可以查看已经创建的 builder 实例:
# 查看已有的 builder 实例
docker buildx ls
为了支持多平台镜像构建,我们需要安装一个模拟器。可以使用下面的命令来安装:
# 安装模拟器(用于多平台镜像构建)
docker run --rm --privileged tonistiigi/binfmt:latest --install all
安装完成后,我们可以查看已经安装的模拟器:
# 查看已安装的模拟器
ls /proc/sys/fs/binfmt_misc/qemu-*
构建命令
最后,我们可以开始进行多平台构建了。如果你在国内,可能需要修改 Dockerfile 里面所用的镜像源,比如 npm。
下面是一个多平台构建的命令示例:
# 多平台构建命令
docker buildx build --platform linux/amd64,linux/arm64 -t kohlarnhin/mx-core:latest --push .
这个命令将会构建支持 amd64 和 arm64 的镜像,并且会自动上传到 Docker Hub 镜像仓库中。