使用docker build kit构建树莓派上可用的Docker镜像

Posted 已注销

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用docker build kit构建树莓派上可用的Docker镜像相关的知识,希望对你有一定的参考价值。

Docker安装

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

build-kit是什么

  • 参考build ARM based Docker Images
  • 简单来说就是扩展docker build的一个实验性的功能
"features": {
    "buildkit": true
  }

以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.git
cd docker-bind
# 修改Dockerfile内容,注意!!此项设置与docker-bind有关,与build-kit的使用无关,仅做演示用
echo \'FROM ubuntu:focal-20200423 AS add-apt-repositories
COPY jcameron-key.asc jcameron-key.asc
RUN 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.list

FROM ubuntu:focal-20200423

LABEL maintainer="sameer@damagehead.com"

ENV BIND_USER=bind \\
    BIND_VERSION=9.16.1 \\
    WEBMIN_VERSION=1.970 \\
    DATA_DIR=/data

RUN apt-get update \\
  && apt-get install -y curl

COPY --from=add-apt-repositories /etc/apt/trusted.gpg /etc/apt/trusted.gpg

COPY --from=add-apt-repositories /etc/apt/sources.list /etc/apt/sources.list

RUN 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.sh

RUN chmod 755 /sbin/entrypoint.sh

EXPOSE 53/udp 53/tcp 10000/tcp

ENTRYPOINT ["/sbin/entrypoint.sh"]

CMD ["/usr/sbin/named"]\' > Dockerfile
# 登录到自己的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 .

# 如果是在Mac或Windows上执行构建的话,需要首先执行下述命令
docker buildx create --use
  • push完成后,就可以在树莓派上拿来用了~

参考

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

以上是关于使用docker build kit构建树莓派上可用的Docker镜像的主要内容,如果未能解决你的问题,请参考以下文章

树莓派应用Docker

Raspberry-jessie Docker 安装记

Raspberry-jessie Docker 安装记

我是如何用树莓派 + Docker 轻松实现人脸识别应用的?

利用树莓派搭建个人服务器

Theano 在树莓派上使用 Keras