构建基于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完成后,就可以在树莓派上拿来用了~
参考
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。