在Raspbian上使用Docker吗?


24

我将如何在Raspbian上运行Docker(https://www.docker.io)?

我发现的说明或者是基于Raspbian 的非常手动的过程,但是具有非常旧的内核,似乎需要大量补丁。resin.io人们也有一个著名的构建,但是它是专门为Arch Linux设计的。

当前的Raspbian内核是3.10.25,它足够现代,可以容纳Docker需要的大多数东西。我并没有在上面构建新内核,但这仍然有必要吗?

有没有人知道如何在Pi上获得Docker及其要求?


有趣的问题。我也会对此有兴趣的答案。您是否尝试过这些指示?
Jivings 2014年

1
不,我已阅读所有内容。我特别希望使用Raspbian,因此Arch指令不是很有用。肯·科克伦(Ken Cochrane)的Raspbian指令似乎很老,需要很多步骤才能使Raspbian保持最新状态,更不用说Docker了,甚至不导致安装工作。我希望在花大量时间之前收集一些信息。
Martijn Heemels 2014年

1
我意识到的一个问题是Docker容器并不是真正的跨体系结构。由于容器与主机OS共享内核,因此容器内的应用程序将绑定到armv6体系结构。您无法在x86上构建docker映像,而无法在armv6上运行它,这限制了您的构建系统。这里有一个基本映像:index.docker.io/u/resin/rpi-raspbian
Martijn Heemels 2014年

因此有可能但不做您想做的事吗?
Jivings 2014年

1
好吧,看来他们的主张self-sufficient container that will run virtually anywhere没有兑现。听起来好像要在某种设备上运行,docker需要与其所运行的设备兼容。听起来像MonoJava更有前途,但并不是您真正需要的。为什么您需要在Pi上使用它?如果您是为Linux开发的,那么您应该真正使用Linux本身的支持进行开发。
Piotr Kula 2014年

Answers:


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上列出的步骤构建自己的内核。
Martijn Heemels 2014年

3
实际上,我已经做到了如何交叉编译。:你可以在这里找到我的博客stevef1uk.blogspot.com/2014/06/...stevef1uk.blogspot.com/2014/06/...
SEAHOPE

7

您还可以使用HypriotOS,它为Raspberry Pi提供了最新的Docker和Linux内核。只需刷新映像即可查看Docker并开始运行!

http://blog.hypriot.com/

(公开:我是Hypriot的团队成员)


谢谢,在我的新Pi2上使用您的新图像。很棒!我已经尝试使用Docker Hub中的各种armhf映像。
Martijn Heemels,2015年

1
@MathiasRenner是否有原因hypriot不开源?您打算通过图像获利吗?
jottr

1
@jottr谢谢您的关注!实际上,您需要在RPI上运行Docker的Hypriot中的所有内容都是开源的。您需要(1)适当的内核(github.com/hypriot/rpi-kernel-builder)和(2)Docker二进制文件(github.com/hypriot/rpi-docker-builder)。只需构建并安装两者,即可开始使用!
Mathias Renner

@MathiasRenner啊,太好了!Thx的指针。
jottr


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
Arjan

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多架构支持):

$ sudo docker run --rm hello-world

为了避免sudo每次Docker调用都键入内容,您可以执行以下额外步骤:https : //docs.docker.com/engine/installation/linux/linux-postinstall/

请享用!

PS:我已经为armhf安装了Ubuntu Server 16.04。然后,我已按照这些说明(对于Ubuntu)在其上安装Docker: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
Zak

你知道有没有其他选择?想必我总是可以回到Raspbian上的手动安装过程吗?
davidA

不,我不知道。但是,Moby Project应该能够回答这个问题。
Zak

谢谢,我要伸出援手。我不希望看到Docker从raspbian中消失-通过Docker在RPi上运行微服务真是令人惊讶...
davidA
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.