Dockerビルドキットを使用して、Raspberry Piで使用できるDockerイメージを構築します。

Dockerビルドキットを使用して、Raspberry Piで使用できるDockerイメージを構築します。

Dockerのインストール

カール -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG ${ユーザー名}

ビルドキットとは

  • ARMベースのDockerイメージのビルドを参照
  • 簡単に言えば、 docker buildを拡張する実験的な機能です

例としてbindを使ってビルドする

docker-bindプロジェクトはオープンソースのカスタムDNS展開サービスですが、 linux/aarch64アーキテクチャに基づく利用可能なイメージを提供していないため、 buildxコマンドを使用して自分でビルド操作を実行する必要があります。

Raspberry Piシステムでは、 uname -aを実行してターゲットアーキテクチャを表示します。

  • Linux/aarch64 の場合
  • Linux/amd64 の場合
  • Linux/ARM64 の場合
  • Linux/ARM/v7 の場合

....

# Raspberry Pi システムで以下のコマンドを実行します 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
コピー jcameron-key.asc jcameron-key.asc
apt-get update を実行する\
 && DEBIAN_FRONTEND=非対話型 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

ubuntu:focal-20200423 より

ラベル メンテナー="[email protected]"

ENV BIND_USER=bind \
  バインドバージョン=9.16.1 \
  WEBMIN_VERSION=1.970 \
  DATA_DIR=/データ

apt-get update を実行する\
 && apt-get install -y カール

コピー --from=add-apt-repositories /etc/apt/trusted.gpg /etc/apt/trusted.gpg

コピー --from=add-apt-repositories /etc/apt/sources.list /etc/apt/sources.list

rm -rf /etc/apt/apt.conf.d/docker-gzip-indexes を実行します。
 && apt-get アップデート \
 && DEBIAN_FRONTEND=非対話型 apt-get install -y \
   bind9=1:${BIND_VERSION}* bind9-host=1:${BIND_VERSION}* dnsutils \
   webmin=${WEBMIN_VERSION}* \
 && rm -rf /var/lib/apt/lists/*

コピー entrypoint.sh /sbin/entrypoint.sh

chmod 755 /sbin/entrypoint.sh を実行します。

公開 53/udp 53/tcp 10000/tcp

エントリポイント ["/sbin/entrypoint.sh"]

CMD ["/usr/sbin/named"]' > Dockerfile
# 独自の docker リポジトリにログインします。# Alibaba Cloud のイメージリポジトリを使用していますが、dockerhub の公式リポジトリを使用することもできます。docker login --username=${user_name} registry.cn-hangzhou.aliyuncs.com
docker buildx ビルド --platform linux/aarch64 -t registry.cn-hangzhou.aliyuncs.com/docker-image-lee/bind:aarch64 --no-cache --push 。

# MacまたはWindowsでビルドする場合は、まず次のコマンドを実行する必要があります docker buildx create --use

プッシュが完了したら、Raspberry Piで使用できます〜

参照する

ARM ベースの Docker イメージの構築

docker buildx ビルド

Raspberry Pi 用の Docker イメージをビルドする

docker ビルドキットを使用して、Raspberry Pi で使用できる Docker イメージをビルドする方法についての記事はこれで終わりです。docker ビルドキットと Raspberry Pi Docker イメージの詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerイメージ内のnoneイメージ操作を削除する
  • Dockerイメージが消える問題を解決する
  • Dockerとイメージの操作方法
  • Docker イメージのインポートとエクスポートのコード例
  • Docker イメージのダウンロードが遅すぎる場合の解決策
  • Dockerイメージ構築原理の分析(Dockerをインストールしなくてもイメージを構築できる)
  • スクリプトを使用して、ワンクリックでDockerイメージをパッケージ化してアップロードします。
  • Dockerイメージを完全にアンインストールする手順

<<:  CSSで背景ぼかしを設定する方法

>>:  MySQL での r2dbc の使用に関する詳細な理解

推薦する

MySQL でのワイルドカードを使用したファジークエリの実装に関する簡単な説明

MySQL データベースでは、あいまいクエリが必要な場合にワイルドカードを使用します。まず、演算子と...

JS でオブジェクトを作成する 4 つの方法

目次1. リテラル値でオブジェクトを作成する2. 新しいキャラクターを使ってオブジェクトを作成する3...

Linux で yum と入力した後に -bash: /usr/bin/yum: No such file or directory という問題を解決する方法

Linuxでyumを入力すると、プロンプトが表示されます: -bash: /usr/bin/yum:...

Vue コンポーネントはどのように解析され、レンダリングされるのでしょうか?

序文この記事では、Vue コンポーネントがどのように解析され、レンダリングされるかを説明します。 V...

Vueフォームで画像を処理する方法

質問: Vue にブログ投稿をアップロードするためのフォームがあり、タイトル、本文、説明、スニペット...

uniapp エントリーレベル nvue クライミングピット記録の分析

目次序文こんにちは世界画像 境界線の半径を設定する実ピクセルを設定する外部CSSをインポートttfフ...

MySQL の日付型の単一行関数コードの詳細な説明

MySQL の日付型単一行関数: CURDATE()またはCURRENT_DATE()は現在の日付を...

WeChatアプレットタブの左右スライドスイッチ機能実装コード

効果画像: 1. はじめに独自のアプレットでこのような機能を実装する必要がある1. 核となる考え方ス...

開発者とオペレーターが注目すべき Linux デバッグ ツール [推奨]

システム パフォーマンスの専門家である Brendan D. Gregg 氏は、LinuxCon N...

MySQL クラスタの詳細な説明: 1 つのマスターと複数のスレーブのアーキテクチャ実装

実験環境: 1. CentOS 7 サーバー 3 台2. mysql5.7.26 (3台のマシンはす...

MySQL ログの設定と表示方法

MySQL には次のログがあります。エラーログ: -log-errクエリログ: -logスロークエリ...

Centos 6.5 での mysql-community-server. 5.7.18-1.el6 のインストール

次のコマンドを使用して、MySQL Serverがインストールされているかどうかを確認します。 [r...

MySQL でのフィルター条件なしのカウントの詳細な説明

カウント(*)成し遂げる1. MyISAM: テーブル内の行の総数をディスク上に保存し、フィルタリン...

MySQL 8.0.11 Community Green Edition の Windows 用インストール手順図

このチュートリアルでは、インストールに最新の MySQL コミュニティ グリーン バージョンである ...

Docker の 4 つのネットワーク タイプの主な例

4 つのネットワーク タイプ:なし: コンテナのネットワーク機能を一切設定しません。--net=no...