私ラズベリーパイ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-ce
Dockerパッケージをアーキテクチャにインストールすることはできませんが、armel
システム(Rasberry Pi 2)はとにかく実行する必要があるため、armhf
設定に問題があります。
桟橋労働者Debian 要件:
オペレーティングシステムの要件
Docker CEをインストールするには、次のDebianまたはRaspbianのいずれかのバージョンの64ビットバージョンが必要です。
- バスター10
- ストレッチ9(安定)/ラズビアンストレッチ
x86_64
Docker CEは(またはamd64
)armhf
、およびアーキテクチャでarm64
サポートされています。このテキストはarmhf
サポートされており、32ビットなので、システムは少し誤解を招く可能性があります。とにかく、あなたのシステムarmel
代わりに建築armhf
、docker.comには利用可能なパッケージはありません。そのため、何を試してもガイドに従い、Dockerをインストールすることはできません。
まず確認できるもの:
システム(chrootの外側)が
armel
orを使用していることを確認してください。答えが「はい」の場合、コマンドは間違っているため、このオプションを使用して再試行する必要があります。armhf
dpkg --print-architecture
armhf
debootstrap
--arch=armhf
修正する: OPが言ったこと--foreign
ですが、必要なようなので、次のコマンドを実行します。debootstrap --foreign --arch=armhf stretch d
修正する:確認するコアコアでもあります
armhf
。どこかにarmv7
(おそらく)armv7l
何かが書かれていますか?それとも単なるものなarm
のarmv6
か?カーネルだけが正しくない可能性があります。 armv7でない場合は、変更を考慮する必要があります。それ以外の場合は他のプラットフォームで再現debootstrap
できないため、説明できないエラーです。armhf
この問題を解決するための歴史的思想は次のとおりです。
- ハードウェアがそれをサポートしていることを確認して、再インストールする代わりに使用してください
armhf
。armhf
armel
Wikipediaによると、Raspberry Pi 2のCPUは少なくともARM Cortex-A7と呼ばれています。armhf
これにぴったりです(旧式)ダーバンページとそのDebian 開発者のブログリンク確認してください。これラズベリーパイストア供給ただarmhf
いいえarmel
。だからarmel
それを見る理由はまったくありません、これは謎です。
また何ができますか?おそらくしかし、とにかく簡単ではありません。別の仕事をしなさい。
- ここでの困難の範囲を超えたもう1つのソリューション(実際にサポートされている場合)は、
armhf
Dockerをインストールするために必要な不足しているマルチアーキテクチャライブラリを完了することです。 - Debian はまだリリースされていない将来の Debian 10 と同等のバージョンを提供します。
docker.io
パッケージは利用可能ですarmel
(ただし、「amd64以外のホストでdocker.ioを使用することは現在サポートされていません」と伝えます)。したがって、Raspbianがリリースされると、このパッケージが利用可能になると想像できます。とにかく最先端のバージョンを期待しないでください。 - ソースコードから
armel
このアーキテクチャのDockerパッケージを再構成することも可能です。それにもかかわらず、これにはまだ保有していない知識が必要です。
インストールしても、armel
抽出したいすべての項目を考慮してください。ドッカーズセンター互換性がありません。 Dockerがそれを提供しない場合、armel
エコシステムarmel
は存在しません。