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

推薦する

JavaScript におけるさまざまなバイナリオブジェクトの関係の詳細な説明

目次序文さまざまなオブジェクト間の関係配列バッファ型付き配列Uint8ClampedArray文字間...

小さな画面のモバイルデバイス向けにWebページを設計する際に注意すべきこと

その理由は、このタイプの Web ページが WAP と呼ばれるワイヤレス プロトコルから生成されたた...

ES6拡張演算子の理解と使用シナリオ

目次1. 適用メソッドを置き換え、関数を呼び出すときにパラメータを処理する2. 残りパラメータ(残り...

Vue2.0+ElementUI+PageHelperで実装されたテーブルページング機能

序文最近、いくつかのフロントエンド プロジェクトに取り組んでおり、ページにいくつかのテーブルを表示す...

全体的なユーザーエクスペリエンスを確保する方法

関連記事:ユーザーエクスペリエンスのためのウェブサイトデザイン今朝、GMail がまた不調になり、接...

JavaScript の寄生的構成継承についての簡単な説明

コンポジション継承組み合わせ継承は、疑似古典的継承とも呼ばれます。これは、昨日説明したプロトタイプ ...

MySQLで判定文を書く方法のまとめ

MySQL で判断文を書く方法:方法1. CASE関数case関数の構文: CASE条件 値1の場合...

ウェブページでよく使用される共有コードの完全なリスト(フロントエンドに必須)

コードをコピーコードは次のとおりです。 1. 新浪微博<a href="http:/...

CSSボックスの表示/非表示とトップレイヤーの実装コード

.imgbox{ 幅: 1200ピクセル; 高さ: 612px; 右マージン: 自動; 左マージン...

mysql と oracle のデフォルトのトランザクション分離レベルの説明

1. トランザクション特性(ACID) (1)原子性トランザクションに関係するプログラムによって実行...

JavaScript でツリー構造を構築するための効率的なアルゴリズムについての簡単な説明

目次導入アイデアID配列インデックスのマッピング関係を確立するツリー構造の構築原理要約する導入組織階...

Windows 上の MySQL バージョン 5.7 でエンコードを UTF-8 に変更する方法

序文MySQLの勉強を始めたばかりで、公式サイトから最新バージョン5.7.14をダウンロードしました...

チェックボックスの不確定プロパティの使用の紹介

Windows XP でフォルダーのプロパティ ダイアログ ボックスを使用すると、フォルダーの属性カ...

bitronix を使用して MySQL に接続するときの MySQLSyntaxErrorException の解決方法

bitronix を使用して MySQL に接続するときの MySQLSyntaxErrorExce...