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

 更新时间:2021年02月25日 09:54:17   作者:SegmentFault博客  
这篇文章主要介绍了使用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是什么

以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 build kit树莓派Docker镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • dockerfile介绍与使用小结

    dockerfile介绍与使用小结

    Dockerfile是一个创建镜像所有命令的文本文件, 包含了一条条指令和说明, 只需要在Dockerfile上添加或者修改指令, 就可生成 docker 镜像,本文给大家介绍dockerfile介绍与使用小结,感兴趣的朋友一起看看吧
    2023-11-11
  • 详解docker 允许主机ssh连接到docker容器中

    详解docker 允许主机ssh连接到docker容器中

    本篇文章主要介绍了详解docker 允许主机ssh到docker容器中,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • idea整合docker快速部署springboot应用的详细过程

    idea整合docker快速部署springboot应用的详细过程

    这篇文章主要介绍了idea整合docker快速部署springboot应用,文中给大家提到关于安装docker步骤,idea连接远程docker的方法,需要的朋友可以参考下
    2021-10-10
  • docker部署code-server的方法

    docker部署code-server的方法

    这篇文章主要介绍了docker部署code-server的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Docker安装mysql并解决中文乱码问题

    Docker安装mysql并解决中文乱码问题

    本文主要介绍了Docker安装mysql并解决中文乱码问题本人亲自测试,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Docker容器的网络管理和网络隔离的实现

    Docker容器的网络管理和网络隔离的实现

    这篇文章主要介绍了Docker容器的网络管理和网络隔离的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Docker Swarm集群管理的使用及原理解析

    Docker Swarm集群管理的使用及原理解析

    这篇文章主要介绍了Docker Swarm集群管理的使用及原理解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • docker搭建minio集群的实现示例

    docker搭建minio集群的实现示例

    Docker MinIO集群是一种基于Docker的MinIO分布式存储解决方案,本文主要介绍了docker搭建minio集群的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Docker 常用命令整理(实用篇)

    Docker 常用命令整理(实用篇)

    这篇文章主要介绍了Docker 常用命令整理,需要的朋友可以参考下
    2017-02-02
  • Docker磁盘空间清理的方法实现

    Docker磁盘空间清理的方法实现

    在使用Docker的过程中,系统会逐渐积累一些无用的垃圾文件,占据宝贵的磁盘空间并影响系统性,本文主要介绍了Docker磁盘空间清理的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09

最新评论