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 の使用に関する詳細な理解

推薦する

uniapp は日付と時刻の選択機能を実装します

この記事の例では、日付と時刻の選択を実装するための uniapp の具体的なコードを参考までに共有し...

mysqlとnavicat間の接続を確立する際の1251エラーを解決する

コンピュータを再インストールし、最新バージョンのMySQLデータベースをインストールしました。その結...

MySQL データベース操作 (作成、選択、削除)

MySQL データベースの作成MySQL サービスにログインしたら、create コマンドを使用し...

MySQL インストール図の概要

MySQL 5.5 のインストールと設定方法のグラフィックチュートリアルMySQL 5.5 のインス...

docker コンペ応募でよく使われるコマンドのまとめ

アカウントにログイン DOCKER_REGISTRY=registry.cn-hangzhou.al...

Dockerイメージサイズを最適化する一般的な方法

通常、私たちが構築する Docker イメージはサイズが大きく、多くのディスク領域を占有します。コン...

InnoDB ロック (レコード、ギャップ、Next-Key ロック) の詳細な説明

レコード ロックは、単一のインデックス レコードをロックします。レコード ロックは常にインデックスを...

Node.js コンソールで強調表示されたコードを印刷する方法

序文コードを実行してエラーが発生すると、エラーが出力されます。エラーにはスタック情報が含まれており、...

Vue のドロップダウン ボックスのセカンダリ リンク効果を実装するためのサンプル コード

1. 成果を達成する 2. バックエンドから返されるデータ形式 「リスト」: [ { "i...

docker を使用して Kong クラスター操作を構築する

docker コンテナの下に kong クラスターを構築するのは非常に簡単です。公式サイトの紹介も非...

LINUX ポートが占有されているかどうかを確認します

ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...

オーディオマニアにアピールするオーディオビジュアルLinuxディストリビューション

私は最近、多くの音楽に特化した Linux ディストリビューションの 1 つである Audiovis...

Nexusプライベートサーバー構築原理とチュートリアル分析

1つ。 Nexus プライベート サーバーを構築する理由は何ですか?社内の開発メンバーは全員外部ネッ...

CentOS 8 に MariaDB をインストールするための詳細なチュートリアル

MariaDB データベース管理システムは MySQL のブランチであり、主にオープンソース コミュ...

JavaScriptのイベントループの仕組みの分析

目次序文: 1. イベント ループとタスク キューの理由: 2. イベントループメカニズム: 3. ...