构建基于ARM架构的Docker镜像

背景

  • 项目中用到了docker-bind做一个自建的DNS服务器,还来想着尝试着在自己的网络环境中搭建一个DNS服务器,以实现广告拦截等功能(弄着玩咯),想来想去最好的部署环境就是树莓派了,但是并没有提供基于ARM架构的镜像,导致无法在树莓派上正常运行,经一番查找,最终找到了本文的主角--BuildKit

BuildKit是什么

  • BuildKit 是下一代的镜像构建组件,可以加快镜像构建效率等等,具体的不再赘述了,参考GitHub介绍即可,自己也没有用过太多,没有深入了解,当然最关键的一个特性就是使用BuildKit可以构建多种系统架构支持的镜像
  • 使用docker buildx命令构建镜像即可以使用BuildKit引擎,更多的关于buildx的特性,访问链接查看GitHub页面即可
  • 在最新版的Docker中,Windows、macOS以及Linux下都默认支持了buildx命令

以docker-bind为案例进行构建

# 在树莓派系统中执行如下命令
git clone https://github.com/sameersbn/docker-bind.git
cd docker-bind
# 登录到自己的docker仓库
# 自己使用的是阿里云的镜像仓库,也可以使用dockerhub官方仓库
docker login --username=${user_name} registry.cn-hangzhou.aliyuncs.com
docker buildx build --platform linux/aarch64  -t registry.cn-hangzhou.aliyuncs.com/docker-image-lee/bind:aarch64 --no-cache --push .
  • 使用uname -a可以查看镜像目标运行环境的系统架构
  • push完成后,就可以在树莓派上拿来用了~

参考


demoli
16 声望0 粉丝

bug创建者