修正する:

修正する:

ラズベリーパイ2走るラスピアン(Debian 9 拡張アーム).純粋なDebian Stretch Chroot環境を作成し、そこにDockerをインストールしたいと思います。私はここで正しい指示に従いました。https://docs.docker.com/install/linux/docker-ce/debian

設置時間になるとドッカー-ce、Aptitudeは、いくつかのライブラリ(libc6など)が見つからないと言いますが、そのライブラリがそこにあり、認識されていないと思います。これは非常に簡単なプロセスのように見えますが、大きな障害物に遭遇しました。

インストールビデオを録画してみました https://youtu.be/wMmZGxZOBbs

私が実行したコマンドは次のとおりです(すべてrootとして実行)。

mkdir d
debootstrap stretch d
mount -B /dev d/dev
mount -B /dev/pts d/dev/pts
mount -B /proc d/proc
mount -B /sys d/sys
chroot d /bin/bash

ルート以降

nano /etc/apt/sources.list # add contrib and non-free
apt-get update
apt-get install aptitude
apt-get install bash-completion
apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository \
   "deb [arch=armhf] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
apt-get update
apt-get install docker-ce # Fails, says package unavailable
aptitude # Try to install docker in aptitude shows missings libraries

適性エラー画面

修正する:

便利なスクリプトを実行すると、次の出力が表示されます。

root@pi2:/# curl -fsSL https://get.docker.com -o get-docker.sh
root@pi2:/# sh get-docker.sh
# Executing docker install script, commit: 4957679
+ sh -c apt-get update -qq >/dev/null
+ sh -c apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c curl -fsSL "https://download.docker.com/linux/debian/gpg" | apt-key add -qq - >/dev/null
Warning: apt-key output should not be parsed (stdout is not a terminal)
+ sh -c echo "deb [arch=armel] https://download.docker.com/linux/debian stretch edge" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c apt-get install -y -qq --no-install-recommends docker-ce >/dev/null
E: Unable to locate package docker-ce

実行すると、apt-get update「アーキテクチャ 'armel' はサポートされていません」というリポジトリが表示されます。

アップデート2

ABの回答ありがとうございます。問題は完全に解決されないかもしれませんが、確かに多くの進歩がありました。

# ### Architecture Output from Debian Chroot
# dpkg --print-architecture
    armel

そして

# ### Architecture Output from Raspian
# dpkg --print-architecture
    armhf
# lsb_release -cs # My system is up to date
    stretch
# debootstrap --arch=armhf stetch d
E: No such script: /usr/share/debootstrap/scripts/stetch

アップデート3

次のコマンドを使用して Debian アーキテクチャ Armhf をインストールできることを発見しました。

# debootstrap --foreign --arch=armhf stretch dir

アップデート4ソリューション

Debian のインストールを強制し、アーキテクチャ armhf 用のドッカーを正常にインストールしました。 Debian をアーキテクチャ armhf としてインストールするためにとった手順は次のとおりです。

mkdir d
debootstrap --foreign --arch=armhf stretch d
cat /etc/resolv.conf > d/etc/resolv.conf
chroot d /bin/bash
./debootstrap/debootstrap --second-stage
apt-get clean

その後、DebianにDockerをインストールする一般的な手順に従いました。

ベストアンサー1

重要な要約:docker-ceDockerパッケージをアーキテクチャにインストールすることはできませんが、armelシステム(Rasberry Pi 2)はとにかく実行する必要があるため、armhf設定に問題があります。

桟橋労働者Debian 要件:

オペレーティングシステムの要件

Docker CEをインストールするには、次のDebianまたはRaspbianのいずれかのバージョンの64ビットバージョンが必要です。

  • バスター10
  • ストレッチ9(安定)/ラズビアンストレッチ

x86_64Docker CEは(またはamd64armhf、およびアーキテクチャでarm64 サポートされています。このテキストはarmhfサポートされており、32ビットなので、システムは少し誤解を招く可能性があります。とにかく、あなたのシステムarmel代わりに建築armhf、docker.comには利用可能なパッケージはありません。そのため、何を試してもガイドに従い、Dockerをインストールすることはできません。

まず確認できるもの:

  • システム(chrootの外側)がarmelorを使用していることを確認してください。答えが「はい」の場合、コマンドは間違っているため、このオプションを使用して再試行する必要があります。armhfdpkg --print-architecturearmhfdebootstrap--arch=armhf修正する: OPが言ったこと--foreignですが、必要なようなので、次のコマンドを実行します。

    debootstrap --foreign --arch=armhf stretch d
    
  • 修正する:確認するコアコアでもありますarmhf。どこかにarmv7(おそらく)armv7l何かが書かれていますか?それとも単なるものなarmarmv6か?カーネルだけが正しくない可能性があります。 armv7でない場合は、変更を考慮する必要があります。それ以外の場合は他のプラットフォームで再現debootstrapできないため、説明できないエラーです。armhf


この問題を解決するための歴史的思想は次のとおりです。

また何ができますか?おそらくしかし、とにかく簡単ではありません。別の仕事をしなさい。

  • ここでの困難の範囲を超えたもう1つのソリューション(実際にサポートされている場合)は、armhfDockerをインストールするために必要な不足しているマルチアーキテクチャライブラリを完了することです。
  • Debian はまだリリースされていない将来の Debian 10 と同等のバージョンを提供します。docker.ioパッケージは利用可能ですarmel(ただし、「amd64以外のホストでdocker.ioを使用することは現在サポートされていません」と伝えます)。したがって、Raspbianがリリースされると、このパッケージが利用可能になると想像できます。とにかく最先端のバージョンを期待しないでください。
  • ソースコードからarmelこのアーキテクチャのDockerパッケージを再構成することも可能です。それにもかかわらず、これにはまだ保有していない知識が必要です。

インストールしても、armel抽出したいすべての項目を考慮してください。ドッカーズセンター互換性がありません。 Dockerがそれを提供しない場合、armelエコシステムarmelは存在しません。

おすすめ記事