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 メモリ サーバー構成の最適化

推薦する

初心者がHTMLタグを学ぶ(2)

初心者は、いくつかの HTML タグを理解することで HTML を学習できます。この入門書は、初心者...

js を使用して年カルーセル選択効果をネイティブに実装する例

序文js を使用して、年の回転選択効果を実現します。では早速、写真を見てみましょう。 1. アイデア...

MySQL 8.0はJSONを扱えるようになりました

目次1. 概要2. JSON基本ツール3. JSONパス式4. JSONを検索して変更する序文:長い...

Win7 での Mysql 5.7.17 winx64 インストール チュートリアル

ソフトウェア バージョンとプラットフォーム: MySQL-5.7.17-winx64、win7 Ho...

背景画像に CSS3 変換を適用するためのソリューション

CSS 変換は便利ですが、背景画像にはまだ適用されていません。この投稿では、背景画像を回転させたい場...

Dockerでデータディレクトリを移行する方法

目次ディスク使用量の表示ディスク クリーンアップ (軽々しく使用しないでください)データの移行ディス...

Angularプロジェクトにおける共有モジュールの実装の詳細な説明

目次1. 共有共通モジュール2. 共有マテリアルモジュール3. 共有確認ダイアログ1. 共有共通モジ...

JS を使用して航空機戦争の小さなゲームを実装する

この記事の例では、参考のために航空機戦争ゲームを実装するためのJSの具体的なコードを共有しています。...

Vue で v-for を更新する方法

ヒント:配列変更メソッドによりv-forが更新され、ページが更新されます。配列を変更しないメソッド:...

Dockerプライベートライブラリの実装

プライベート Docker レジストリのインストールとデプロイは、Docker テクノロジーを導入、...

Tomcat サーバーの設定と Web プロジェクトの公開に関する IDEA グラフィック チュートリアル

1. Webプロジェクトを作成したら、Tomcatを例にサーバーを構成する必要があります。 2. 実...

7つのMySQL JOINタイプのまとめ

始める前に、これから紹介する JOIN タイプを示すために 2 つのテーブルを作成します。テーブルを...

マスタークラスタに再参加する k8s ノードの実装

1. ノードを削除するkubectl delete node node01を実行します。 2. この...

HTML ウェブページの段落レイアウトと改行

Web ページの外観はレイアウトに大きく左右されます。ページ内に長い段落のテキストがある場合、通常は...

nginxでの共有メモリの使用に関する詳細な説明

nginx プロセス モデルでは、トラフィック統計、トラフィック制御、データ共有などのタスクを完了す...