使用buildx构建多架构的Docker镜像
前言
Buildx(BuildKit)是Docker官方提供的一个高级的构建引擎,可以通过多个后端驱动程序实现更强大和灵活的Docker镜像构建功能。以 Node.js 应用为例,演示Buildx构建Docker镜像的主要流程:
一、准备Dockerfile
1.创建一个包含Node.js应用的目录,假设应用文件结构如下:
1 | myapp/ |
2.在该目录中新建一个Dockerfile文件(无文件后缀),编写如下内容:
1 | # 使用 Node.js 14 作为基础镜像 |
二、新建builder
1 | # 安装Docker CLI插件 |
docker buildx create
:创建新的builder。--use
:将新建的builder,设置为当前活动的builder。--name=mybuilder-cn
:指定新建builder的名称为mybuilder-cn,可自行设定。--driver docker-container
:指定builder使用docker-container作为驱动程序。--driver-opt image=dockerpracticesig/buildkit:master
:设置特定的BuildKit镜像。
三、切换/查看builder信息
1 | # 切换到名为“mybuilder-cn”的builder |
四、构建镜像
1 | # “<platform1>,<platform2>,...”替换成“要构建的目标平台” |
--platform linux/amd64,linux/arm64
:指定构建的两个平台——x86_64、ARM64-t myusername/hello
:指定构建的Docker镜像的名称和标签——myusername是Docker Hub用户名、hello是镜像名.
:构建上下文的路径
五、将镜像推送到Docker Hub
1 | # 确保仓库账户已登录 |
六、运行构建的Docker镜像
1 | docker run -it --rm myusername/hello:v1.0 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 彗星来了!
评论