Docker装置

curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.shsudo usermod -aG ${user_name}

build-kit是什么

  • 参考build ARM based Docker Images
  • 简略来说就是扩大docker build的一个实验性的性能

以bind为案例进行构建

  • docker-bind我的项目是一个开源的自定义DNS部署服务,然而并没有提供基于linux/aarch64架构的可用镜像,因而须要本人应用buildx命令执行构建操作

    • 在树莓派零碎中,执行uname -a来查看本人的指标架构

      • linux/aarch64
      • linux/amd64
      • linux/arm64
      • linux/arm/v7
      • ....
# 在树莓派零碎中执行如下命令git clone https://github.com/sameersbn/docker-bind.gitcd docker-bind# 批改Dockerfile内容,留神!!此项设置与docker-bind无关,与build-kit的应用无关,仅做演示用echo 'FROM ubuntu:focal-20200423 AS add-apt-repositoriesCOPY jcameron-key.asc jcameron-key.ascRUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y gnupg \ && apt-get install -y curl \ && apt-key adv --fetch-keys https://www.webmin.com/jcameron-key.asc \ && echo "deb http://download.webmin.com/download/repository sarge contrib" >> /etc/apt/sources.listFROM ubuntu:focal-20200423LABEL maintainer="sameer@damagehead.com"ENV BIND_USER=bind \    BIND_VERSION=9.16.1 \    WEBMIN_VERSION=1.970 \    DATA_DIR=/dataRUN apt-get update \  && apt-get install -y curlCOPY --from=add-apt-repositories /etc/apt/trusted.gpg /etc/apt/trusted.gpgCOPY --from=add-apt-repositories /etc/apt/sources.list /etc/apt/sources.listRUN rm -rf /etc/apt/apt.conf.d/docker-gzip-indexes \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y \      bind9=1:${BIND_VERSION}* bind9-host=1:${BIND_VERSION}* dnsutils \      webmin=${WEBMIN_VERSION}* \ && rm -rf /var/lib/apt/lists/*COPY entrypoint.sh /sbin/entrypoint.shRUN chmod 755 /sbin/entrypoint.shEXPOSE 53/udp 53/tcp 10000/tcpENTRYPOINT ["/sbin/entrypoint.sh"]CMD ["/usr/sbin/named"]' > Dockerfile# 登录到本人的docker仓库# 本人应用的是阿里云的镜像仓库,也能够应用dockerhub官网仓库docker login --username=${user_name} registry.cn-hangzhou.aliyuncs.comdocker buildx build --platform linux/aarch64  -t registry.cn-hangzhou.aliyuncs.com/docker-image-lee/bind:aarch64 --no-cache --push .# 如果是在Mac或Windows上执行构建的话,须要首先执行下述命令docker buildx create --use
  • push实现后,就能够在树莓派上拿来用了~

参考

  • build ARM based Docker Images
  • docker buildx build
  • Build Docker Image for Raspberry Pi