Docker no Raspbian?

24

Como eu iria executar o Docker ( https://www.docker.io ) no Raspbian?

As instruções que encontrei são um processo muito manual baseado no Raspbian, mas com um kernel muito antigo que parecia exigir vários patches. Há também a versão bem conhecida do pessoal do resin.io, mas foi feita especificamente para o Arch Linux.

O kernel Raspbian atual é 3.10.25, que é moderno o suficiente para ter a maioria das coisas que o Docker precisa. Não estou acima de construir um novo kernel, mas isso ainda é necessário?

Alguém descobriu como obter o Docker e seus requisitos no Pi?

Martijn Heemels
fonte
Pergunta interessante. Eu também estarei interessado em uma resposta para isso. Você já tentou essas instruções?
Jivings
11
Não, eu li tudo o que pude encontrar. Eu estou procurando especificamente usar Raspbian para que as instruções do Arch não sejam muito úteis. As instruções do Raspbian de Ken Cochrane parecem muito antigas, exigindo várias etapas para atualizar o Raspbian, muito menos o Docker, e nem resultam em uma configuração de trabalho. Eu esperava reunir algumas informações antes de gastar muito tempo com isso.
Martijn Heemels
11
Um que eu percebi é que os contêineres do Docker não são realmente de arquitetura cruzada. Como os contêineres compartilham o kernel com o sistema operacional host, os aplicativos dentro dos contêineres são vinculados à arquitetura armv6. Você não pode criar uma imagem de janela de encaixe no x86 e executá-la no armv6, o que limita seu sistema de criação. Há uma base-imagem disponível aqui: index.docker.io/u/resin/rpi-raspbian
Martijn Heemels
Então é possível, mas não fazer o que você quer?
precisa saber é o seguinte
11
Bem, parece que a reivindicação deles self-sufficient container that will run virtually anywhereestá aquém. Parece que para rodar em algo, o docker precisa ser compatível com o dispositivo em que está sendo executado. Parece Monoou Javasão mais promissores, mas não são exatamente o que você precisa. Por que você precisa disso no Pi? Se você está desenvolvendo para o Linux, deve realmente desenvolver o que ele suporta nativamente.
Piotr Kula

Respostas:

14

Sim, eu construí um kernel e portado o Docker 1.0 para o sistema operacional Raspbian: Linux raspberrypi 3.10.37+ # 1 PREEMPT Sáb Apr 19 13:28:05 UTC 2014 armv6l GNU / Linux

Eu compartilhei minhas saídas no GitHub para salvar outras pessoas da dor. Como é habitual, eu forneci este 'como está' sem garantia ;-)

Você pode encontrar o arquivo tar do kernel e docker aqui:

https://github.com/stevef1uk/docker_for_rpi

Seahope
fonte
11
Isso é muito interessante. Obrigado por compartilhar. Você se importaria de adicionar as etapas para compilar o kernel? Particularmente, quais opções você alterou na configuração? Estou prestes a tentar criar meu próprio kernel através das etapas listadas em elinux.org/RPi_Kernel_Compilation .
Martijn Heemels
3
Na verdade, eu já fiz isso e também como fazer a compilação cruzada. Você pode encontrar meus blogs aqui: stevef1uk.blogspot.com/2014/06/… & stevef1uk.blogspot.com/2014/06/…
Seahope
7

Você também pode usar o HypriotOS, que fornece o kernel do Docker e Linux mais recente para o Raspberry Pi. Basta exibir a imagem e ver o Docker em funcionamento!

http://blog.hypriot.com/

(divulgação: eu sou um membro da equipe da Hypriot)

Mathias Renner
fonte
Obrigado, usando sua nova imagem no meu novo Pi2. Funciona bem! Eu tentei com uma variedade de imagens armhf do Docker Hub.
Martijn Heemels 4/03/15
11
@MathiasRenner existe uma razão pela qual o hypriot não é de código aberto? Você está planejando gerar receita com a imagem?
jottr
11
@jottr Obrigado pelo seu interesse! Na verdade, tudo do Hypriot que você precisa para executar o Docker no RPI é de código aberto. Você precisa (1) de um kernel adequado (github.com/hypriot/rpi-kernel-builder) e (2) do binário do Docker (github.com/hypriot/rpi-docker-builder). Basta criar e instalar os dois e você está pronto para começar!
Mathias Renner
@MathiasRenner ah great! Thx para os ponteiros.
24415 jottr
Isso também funciona muito bem em Raspbian Jessie; blog.hypriot.com/post/your-number-one-source-for-docker-on-arm
Arjan
3

Se você usa Raspbian:

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

O Docker agora está no repositório padrão,

Atualização : infelizmente, esta versão é bastante antiga, portanto, extrair imagens do Docker Hub não funcionará no momento.

Janghou
fonte
A versão no repositório padrão é super antiga, 1.3.3 a partir deste comentário. Ele não funciona mais com o registro do docker, tornando-o praticamente inútil.
DriverDan
Acordado. Esperemos que o pacote em Raspbian será atualizado em breve, talvez um pedido bug / recurso ajudará
Janghou
Há 1.8.3 (outubro de 2015) no repositório de testes Raspbian.
Nphx 03/04
Consulte blog.hypriot.com/post/your-number-one-source-for-docker-on-arm para o Docker 1.10 no Raspbian Jessie.
Arjan
3

O Docker suporta ARMv6 / v7 e até ARM64 (v8?), Para que você possa executá-lo no seu Raspberry Pis.

Siga as instruções oficiais do Docker aqui: https://docs.docker.com/engine/installation/linux/docker-ce/debian/

Se você tem Jessie Raspbian ou Stretch (verifique a documentação acima para outras pessoas), seria:

$ 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

Você pode testá-lo (graças ao suporte multiarca do Docker):

$ sudo docker run --rm hello-world

Para evitar digitar sudotodas as chamadas do Docker, você pode executar as seguintes etapas extras: https://docs.docker.com/engine/installation/linux/linux-postinstall/

Apreciar!

PS: Instalei o Ubuntu Server 16.04 para armhf. Segui estas instruções (para o Ubuntu) para instalar o Docker: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#set-up-the-repository . Funciona como um encanto também.

Huygens
fonte
2

Eu sempre usei ...

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

No entanto, acabei de ver um aviso de reprovação esta manhã ...

WARNING: raspbian is no longer updated @ https://get.docker.com/
         Installing the legacy docker-engine package...
Zak
fonte
Acabei de perceber isso também - você sabe o que isso significa? Quais são as implicações disto?
DavidA 18/08
Isso significa que funciona hoje, mas provavelmente não funcionará amanhã. Isso também significa que você deve escrever para o projeto moby (ou seja, as pessoas que mantêm o docker), dizer a eles o quão impressionante é e pedir que eles continuem mantendo-o. : D
Zak
Você sabe se existe uma alternativa? Presumivelmente, eu sempre poderia voltar ao processo de instalação manual no Raspbian?
precisa saber é o seguinte
Não sei não. No entanto, o Projeto Moby deve ser capaz de responder a essa pergunta.
Zak
Obrigado, estou chegando. Eu odiaria ver o Docker desaparecer do raspbian - a execução de microsserviços via Docker em um RPi é incrível ...
davidA