Raspberry PiにDockerをインストールする方法

Raspberry PiにDockerをインストールする方法

Raspberry Pi は ARM アーキテクチャをベースとしているため、Docker のインストールと使用方法も異なります。議論すべき内容はたくさんあるので、ここではそれを抜粋して紹介します。

Raspberry Pi は PC とは異なる ARM アーキテクチャに基づいています。そのため、Raspberry Pi 上で Docker イメージを作成できたとしても、それを他の PC で実行することはできません。逆に言えば、他の PC 上の Docker イメージは Raspberry Pi 上では実行できません。

Raspberry Pi 固有のイメージを見つける必要がある場合は、 DockerhubARMまたはRpiを検索してください。

Hypriotという Raspberry Pi 専用の Docker を多数作成している倉庫があるので、参考にしてください。

Raspberry Pi リファレンス: Debian 用 Docker CE を入手する

参考: Pi と Docker で動く自宅サーバー

Raspberry Pi に Docker をインストールする際の最も難しい部分は、ソースを正しく選択して GPG キーを追加し、適切なバージョンの Docker を見つけてダウンロードできるようにすることです。このプロセスは非常に面倒であり、統一されたソリューションを得るのは困難です。

公式版ワンクリックインストールスクリプト

注: 公式のワンクリック インストール スクリプトはサポートされなくなったと多くの人が言っています。しかし、現在の立場は実際にはまだ支持可能です。

参考: Raspberry Pi に Docker をセットアップする簡単な方法

始める前に説明させてください。私はこれまで何度も失敗し、関連する解決策をたくさん見つけましたが、どれもうまくいきませんでした。それまで。 。 。

sudo apt-get updateと、最も重要なsudo apt-get upgrade実行するまで動作しませんでした。

実際、アップグレード中に多くのシステム依存パッケージが更新され、以前の Docker インストールの失敗の原因となったすべての問題が解決されていることがわかります。

アップグレードが完了すると、正式なインストールが開始されます。

シェル スクリプトget.docker.com使用する必要がありますが、Web サイト全体にはこの 1 つのスクリプトのみが含まれます。ダウンロードして実行:

$ curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh

完了すると、次のように表示されます。

次に、hello world を実行して試してみましょう。

$ sudo docker run hello-world

次に次のように表示されます:

手動インストール

準備:

#SSL関連をインストールし、aptがHTTPS経由でダウンロードできるようにします:
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

# dockerのGPGキーを追加する
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key を追加 -
# キーが一致するかどうかを確認します (9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88)
sudo apt-key フィンガープリント 0EBFCD88

#docker の apt ダウンロード ソースを追加します sudo echo "\ndeb-src [arch=amd64] https://download.docker.com/linux/debian wheezy stable\n" >> /etc/apt/sources.list

#ソースの更新 sudo apt-get update

docker をインストールします:

$ sudo apt-get install docker-ce

sudoなしでdockerを実行する

docker実行するたびにsudoを入力しなくても済むようにするには、docker のユーザー グループを作成し、権限を付与する必要があります。

# dockerユーザーグループを作成する sudo groupadd docker

# 現在のユーザーをdockerユーザーグループに追加します sudo gpasswd -a $USER docker

# 現在のユーザー グループの変更を更新します (ログアウトして再度ログインする必要はありません)
新しいグループドッカー

docker-composeをインストールする

docker compose docker コンテナとしてダウンロードして実行できます。

docker 実行 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v "$PWD:/rootfs/$PWD" \
  -w="/rootfs/$PWD" \
  docker/compose:1.13.0 がアップ

# エイリアスショートカットを設定する (`~/.zshrc` または `~/.bash_profile`)
エイリアス docker-compose="'"'docker run \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v "$PWD:/rootfs/$PWD" \
  -w="/rootfs/$PWD" \
  docker/compose:1.13.0'"'"

よくあるエラー

Python: No module name lsb_release

まず、 lsb_releaseがすでにマシンにインストールされているかどうかを確認するか、再インストールします。

$ sudo apt-get インストール lsb-release

この問題が引き続き発生する場合は、Python のバージョンを確認してください。 python3 の場合、lsb_release には少なくとも python3.5 が必要なので、バージョンが不十分である可能性があります。
この問題を解決するには、デフォルトの Python を Python2 に戻すだけです。 ln を使用してショートカットを作成するだけです。

# バックアップ(Pythonの具体的な場所は状況によって異なります)
$ sudo mv /usr/bin/python /usr/bin/python_bak

# 置き換え $ sudo ln -s /usr/bin/python2.7 /usr/bin/python

次に、 $ lsb_release -csを再度実行して、 jessieが表示されるかどうかを確認します。

無法添加源add-apt-repository 報錯找不到相關源

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Raspberry Pi 4b ubuntu19 サーバーへの docker-ce のインストール手順
  • DockerをインストールしてAlibaba Cloud Image Acceleratorを構成する方法
  • Dockerイメージ内のファイルを表示する方法
  • Docker buildx を使用してマルチプラットフォーム イメージをビルドし、プライベート リポジトリにプッシュする方法
  • Dockerビルドキットを使用して、Raspberry Piで使用できるDockerイメージを構築します。

<<:  React refの使用例

>>:  MySQL 4G メモリ サーバー構成の最適化

推薦する

ネイティブJSで様々なモーションの複合モーションを実現

この記事では、ネイティブ JS で実装された複合モーションを紹介します。複合モーションとは、異なる属...

CentOS 6.9 で glibc ダイナミック ライブラリをアップグレードする詳細なプロセス

glibc は、gnu によってリリースされた libc ライブラリ、つまり c ランタイム ライブ...

JavaScriptはオブジェクトの不要なプロパティを削除します

目次例方法1: 削除方法2: 分解補充する要約するThinking シリーズは、10 分で実用的なプ...

HTML テーブルタグチュートリアル (17): テーブルタイトルの垂直配置属性 VALIGN

表のキャプションは表の上または下に配置でき、プロパティで調整できます。デフォルトのテーブル タイトル...

Angularフレームワークのビュー抽象定義の詳細な説明

序文「大規模なフロントエンド プロジェクト向け」に設計されたフロントエンド フレームワークである A...

MySQLインスタンスが起動できない問題の分析と解決

目次序文シナリオ分析要約する序文数日前、友人がWeChatで私に連絡してきて、マシンがダウンタイムか...

Apple Watchのインタラクションデザインにおける4つの全く異なる体験が明らかに

今日も Watch アプリのデザインに関する話です。私はケーススタディが大好きなので、同じトピックを...

Vueはプライベートフィルターと基本的な使用法を定義します

プライベート フィルターとグローバル フィルターのメソッドと概念は同じですが、プライベート フィルタ...

純粋な CSS 実装 (スクリプトなし) HTML コマンド スタイルのツールチップ テキスト プロンプト効果

実行プロセスを分析します。マウスをノードに移動して、ノードにツールチップ実装を開くための識別子 (...

Docker コンテナ データ ボリュームの名前付きマウントと匿名マウントの問題

目次コンテナデータボリュームとはコンテナ データ ボリュームが必要なのはなぜですか?使用データボリュ...

Linux の cut コマンドの説明

Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...

HTMLフォーム要素の包括的な理解

以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピー<!DO...

mysql5.7.20 での最初のログイン失敗に対する簡単な解決策

まず、 (1)MySQL 5.7にはデフォルトのパスワードがあるデフォルトのパスワードを見つける g...

JS の Promise に中止関数を追加する方法

目次概要プロミスレースメソッド約束の再パッケージ化中止コントローラAxiosプラグインにはキャンセル...

Linuxのtopコマンド出力の詳細な説明

序文皆さんは Linux で top コマンドを使ったことがあると思います。私は Linux に触れ...