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

推薦する

div が contentEditable=true に設定されている場合、コンテンツをリセットした後にカーソルを配置することはできません。

最近、絵文字にコメントする機能が必要なコメント機能に取り組んでいたため、 contentEditab...

Dockerのネットワークモードと設定方法

1. Dockerネットワークモードdocker run が Docker コンテナを作成するときに...

Nginx を使用して rtmp ライブ サーバーを実行する方法

今回は、コンピューターや携帯電話用の rtmp ライブ ブロードキャスト サーバーを設定し、ライブ ...

体験をデザインする: ボタンには何があるか

<br />最近、UCDChina は「インターフェース上のテキストに注意を払う」という...

CSS スタイルをプログラムで処理するためのサンプル コード

プログラム的アプローチの利点1. スタイルの分散を避けるためのグローバルコントロール2. シンプルな...

React Nativeはモニタリングジェスチャーの上下プル効果を実現します

React Native は、プルアップとプルダウンの監視ジェスチャを実装します。詳細なコアコードは...

nginx リバース プロキシの魔法のスラッシュについての簡単な説明

nginx リバース プロキシを設定する場合、location と proxy_pass のスラッシ...

Vueはツリー構造の追加、削除、変更、チェックのサンプルコードを実装します

実は多くの会社がユーザー権限ツリーに似た機能を持っています。最近、追加、削除、修正のツリー構造を書き...

JS はシンプルな todoList (メモ帳) 効果を実装します

メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド...

JS初心者が配列を処理するための実践的な方法のまとめ

join() メソッド: 指定された区切り文字を使用して配列内のすべての要素を文字列に接続します。例...

Linux でファイルのユーザーとグループを変更する方法

Linux では、ファイルが作成されると、そのファイルの所有者はファイルを作成したユーザーになります...

MySQL データベースは XA 仕様をどのように実装しますか?

MySQL 一貫性ログMySQL データベースの電源が切れた場合、コミットされていないトランザクシ...

Linuxでホスト名を永続的に変更する方法

ホスト名を変更する場合は、以下の手順に従ってください。ホスト名の使用hostnameコマンドを使用す...

VPS はオフライン ダウンロード サーバーを構築します (ネットワーク ディスクの時代以降)

モチベーション学習の必要性から、海外のサーバーメーカー(どこのメーカーかは言いません)のVPSサービ...

Facebookの情報アーキテクチャの分析

<br />原文: http://uicom.net/blog/?p=762 Faceb...