RaspbianのDocker?


24

RaspbianでDocker(https://www.docker.io)を実行するにはどうすればよいですか?

私が見つけた指示は、Raspbianに基づいた非常に手動のプロセスですが、非常に古いカーネルを使用しており、多数のパッチが必要なようです。resin.ioの人々による有名なビルドもありますが、特にArch Linux向けに作られています。

現在のRaspbianカーネルは3.10.25であり、Dockerが必要とするほとんどの機能を備えた最新のカーネルです。新しいカーネルを構築する以上ではありませんが、それでも必要ですか?

誰かがDockerとその要件をPiで実行する方法を理解しましたか?


興味深い質問。これに対する答えにも興味があります。これらの指示をまったく試しましたか?
Jivings

1
いいえ、見つけることができるすべてを読みました。私は特にRaspbianの使用を検討しているため、Archの指示はあまり役に立ちませんでした。Ken CochraneによるRaspbianの指示は非常に古く、Raspbianを最新のものにするには多くの手順を必要とし、Dockerは言うまでもなく、セットアップが機能しないことすらありません。膨大な時間を費やす前に情報を集めたいと思っていました。
マーティンヒーメルス14

1
私が気づいたことの1つは、Dockerコンテナは実際にはクロスアーキテクチャではないということです。コンテナはカーネルをホストOSと共有するため、コンテナ内のアプリケーションはarmv6アーキテクチャにバインドされます。x86でdockerイメージをビルドしてarmv6で実行することはできません。ビルドシステムに制限が課されます。可能なベース画像がここにあります:index.docker.io/u/resin/rpi-raspbian
マルタインHeemels

だからそれは可能ですが、あなたが望むことをすることはできませんか?
Jivings

1
まあ彼らの主張self-sufficient container that will run virtually anywhereは不足しているようだ。何かで動作するように聞こえますが、Dockerは実行中のデバイスと互換性がある必要があります。それはのように聞こえるMonoか、Java何が必要ではない本当に多くの有望されているが、。どうしてこれをPiで必要とするのですか?Linux向けに開発する場合、ネイティブでサポートするものを実際に開発する必要があります。
ピョートルクラ

回答:


14

はい、カーネルを構築し、Docker 1.0をRaspbian OSに移植しました:Linux raspberrypi 3.10.37+#1 PREEMPT Sat Apr 19 13:28:05 UTC 2014 armv6l GNU / Linux

私はGitHubでの出力を共有して、他の人の痛みを軽減しました。いつものように、私はこの「現状のまま」で保証なしで提供しています;-)

カーネルとdocker tarファイルは次の場所にあります。

https://github.com/stevef1uk/docker_for_rpi


1
それはとても興味深いです。共有してくれてありがとう。カーネルをコンパイルするための手順を追加してもよろしいですか?特に、設定でどのオプションを変更しましたか?elinux.org/RPi_Kernel_Compilationにリストされている手順で、独自のカーネルを構築しようとしています。
マルタインHeemels

3
実際、クロスコンパイルの方法だけでなく、すでにそれを行っています。あなたはここに私のブログを見つけることができます。stevef1uk.blogspot.com/2014/06/...stevef1uk.blogspot.com/2014/06/...
SEAHOPE

7

Raspberry Pi用の最新のDockerおよびLinuxカーネルを提供するHypriotOSを使用することもできます。画像をフラッシュするだけで、Dockerが起動して実行されます。

http://blog.hypriot.com/

(開示:私はHypriotのチームメンバーです)


新しいPi2で新しい画像を使用していただきありがとうございます。よく働く!Docker Hubのさまざまなarmhfイメージで試してみました。
マーティンヒーメルズ

1
@MathiasRennerは、hypriotがオープンソースではない理由はありますか?画像で収益化する予定ですか?
jottr

1
@jottrご関心をお寄せいただきありがとうございます!実際、RPIでDockerを実行するために必要なHypriotのすべてはオープンソースです。(1)適切なカーネル(github.com/hypriot/rpi-kernel-builder)と(2)Dockerバイナリ(github.com/hypriot/rpi-docker-builder)が必要です。両方をビルドしてインストールするだけで準備完了です!
マティアスレナー

@mathiasRenner素晴らしい!ポインターのThx。
jottr

これは、Raspbian Jessieでもうまく機能します。blog.hypriot.com/post/your-number-one-source-for-docker-on-arm
アルジャン

3

Raspbianを使用する場合:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install docker.io docker

Dockerは現在デフォルトのリポジトリにあり、

更新:残念ながら、このバージョンはかなり古いため、現時点ではDocker Hubから画像を取り込むことはできません。


デフォルトのレポジトリのバージョンは非常に古く、このコメントの時点では1.3.3です。Dockerレジストリでは動作しなくなり、ほとんど役に立たなくなりました。
-DriverDan

同意した。うまくいけば、Raspbianパッケージは多分バグ/機能要求が役立つ、すぐに更新されます
Janghou

Raspbianテストリポジトリには1.8.3(2015年10月)があります。
nphx

Raspbian JessieのDocker 1.10のblog.hypriot.com/post/your-number-one-source-for-docker-on-armを参照してください。
アルジャン

3

DockerはARMv6 / v7、さらにはARM64(v8?)もサポートしているため、Raspberry Piで実行できます。

Dockerの公式の指示に従ってください:https : //docs.docker.com/engine/installation/linux/docker-ce/debian/

Raspbian JessieまたはStretchを使用している場合(上記のドキュメントを確認してください)、これは次のようになります。

$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
$ echo "deb [arch=armhf] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
     $(lsb_release -cs) stable" | \
     sudo tee /etc/apt/sources.list.d/docker.list
$ sudo apt-get update; sudo apt-get install docker-ce
$ sudo systemctl start docker

その後、それをテストできます(Docker multiarchサポートのおかげ):

$ sudo docker run --rm hello-world

sudoすべてのDocker呼び出しの入力を避けるために、次の追加手順を実行できます。https//docs.docker.com/engine/installation/linux/linux-linux-postinstall/

楽しい!

PS:armhf用にUbuntu Server 16.04をインストールしました。私はそれにドッカーをインストールするには(Ubuntuの場合)これらの指示に従っている:https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#set-up-the-repository。それも魅力のように機能します。


2

私はいつも使用しています...

curl -sSL https://get.docker.com | sh && sudo usermod -aG docker pi

しかし、今朝、廃止予定の通知を見ました...

WARNING: raspbian is no longer updated @ https://get.docker.com/
         Installing the legacy docker-engine package...

私もこれに気づいた-それが何を意味するか知っていますか?これの意味は何ですか?
-davidA

つまり、今日は動作しますが、おそらく明日は動作しません。また、mobyプロジェクト(つまり、dockerを保守している人)に書き込み、それがどれほど素晴らしいかを伝え、保守を続けてくださいと懇願することも意味します。:D
ザック

代替手段があるかどうか知っていますか?おそらく、Raspbianの手動インストールプロセスにいつでも戻ることができますか?
-davidA

いいえ、わかりません。ただし、Mobyプロジェクトはその質問に答えられるはずです。
ザック

おかげで、私は手を差し伸べています。私はドッカーがraspbianから消え見ることを憎む- RPIにドッカーを経由して実行しているmicroservices ...素晴らしいです
davidA
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.