Docker sur Raspbian?


24

Comment pourrais-je exécuter Docker ( https://www.docker.io ) sur Raspbian?

Les instructions que j'ai trouvées sont soit un processus très manuel basé sur Raspbian mais avec un très vieux noyau qui semblait nécessiter un tas de correctifs. Il y a aussi la construction bien connue des gens de resin.io, mais elle est spécialement conçue pour Arch Linux.

Le noyau Raspbian actuel est 3.10.25 qui est assez moderne pour avoir la plupart des choses dont Docker a besoin. Je ne suis pas au-dessus de la construction d'un nouveau noyau, mais est-ce toujours nécessaire?

Quelqu'un a-t-il compris comment obtenir Docker et ses exigences sur le Pi?


Question interessante. Je serai également intéressé par une réponse à cela. Avez-vous essayé ces instructions?
Jivings

1
Non, j'ai lu tout ce que j'ai pu trouver. Je cherche spécifiquement à utiliser Raspbian, donc les instructions Arch n'étaient pas très utiles. Les instructions Raspbian de Ken Cochrane semblent très anciennes, nécessitant de nombreuses étapes pour même mettre Raspbian à jour, sans parler de Docker, et n'aboutissent même pas à une configuration fonctionnelle. J'espérais rassembler quelques informations avant d'y consacrer une tonne de temps.
Martijn Heemels

1
J'ai réalisé que les conteneurs Docker ne sont pas vraiment une architecture croisée. Comme les conteneurs partagent le noyau avec le système d'exploitation hôte, les applications à l'intérieur des conteneurs sont liées à l'architecture armv6. Vous ne pouvez pas créer une image docker sur x86 et l'exécuter sur armv6, ce qui impose des limites à votre système de génération. Une image de base est disponible ici: index.docker.io/u/resin/rpi-raspbian
Martijn

C'est donc possible mais ne pas faire ce que l'on veut?
Jivings

1
Eh bien, il semble que leur revendication ne self-sufficient container that will run virtually anywheresoit pas à la hauteur. Il semble que cela fonctionne sur quelque chose, le docker doit être compatible avec l'appareil sur lequel il fonctionne. Cela ressemble à Monoou Javaqui sont plus prometteurs, mais pas vraiment ce dont vous avez besoin. Pourquoi avez-vous besoin de cela sur le Pi? Si vous développez pour Linux, vous devez vraiment développer ce qu'il prend en charge nativement.
Piotr Kula

Réponses:


14

Oui, j'ai construit un noyau et porté Docker 1.0 sur le système d'exploitation Raspbian: Linux raspberrypi 3.10.37+ # 1 PREEMPT Sam Apr 19 13:28:05 UTC 2014 armv6l GNU / Linux

J'ai partagé mes sorties sur GitHub pour éviter aux autres la douleur. Comme d'habitude, j'ai fourni ce 'tel quel' sans garantie ;-)

Vous pouvez trouver le fichier tar du noyau et du docker ici:

https://github.com/stevef1uk/docker_for_rpi


1
C'est très intéressant. Merci d'avoir partagé. Pourriez-vous ajouter les étapes de compilation du noyau? En particulier, quelles options avez-vous modifiées dans la configuration? Je suis sur le point d'essayer de construire mon propre noyau via les étapes répertoriées sur elinux.org/RPi_Kernel_Compilation .
Martijn Heemels

3
En fait, je l'ai déjà fait ainsi que la façon de croiser la compilation. Vous pouvez trouver mes blogs ici: stevef1uk.blogspot.com/2014/06/… & stevef1uk.blogspot.com/2014/06/…
Seahope

7

Vous pouvez également utiliser HypriotOS, qui fournit le dernier noyau Docker et Linux pour Raspberry Pi. Il suffit de flasher l'image et de voir Docker opérationnel!

http://blog.hypriot.com/

(divulgation: je suis un membre de l'équipe d'Hypriot)


Merci d'utiliser votre nouvelle image sur mon nouveau Pi2. Fonctionne très bien! Je l'ai essayé avec une variété d'images armhf de Docker Hub.
Martijn Heemels

1
@MathiasRenner y a-t-il une raison pour laquelle hypriot n'est pas open source? Envisagez-vous de monétiser l'image?
jottr

1
@jottr Merci de votre intérêt! En fait, tout ce que vous avez besoin d'Hypriot pour exécuter Docker sur RPI est open source. Vous avez besoin (1) d'un noyau approprié (github.com/hypriot/rpi-kernel-builder) et (2) du binaire Docker (github.com/hypriot/rpi-docker-builder). Créez et installez les deux et vous êtes prêt à partir!
Mathias Renner

@MathiasRenner ah super! Thx pour les pointeurs.
jottr

Cela fonctionne également très bien sur Raspbian Jessie; blog.hypriot.com/post/your-number-one-source-for-docker-on-arm
Arjan

3

Si vous utilisez Raspbian:

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

Docker est maintenant dans le référentiel par défaut,

Mise à jour : malheureusement, cette version est assez ancienne, donc extraire des images de Docker Hub ne fonctionnera pas pour le moment.


La version du dépôt par défaut est super ancienne, 1.3.3 à partir de ce commentaire. Il ne fonctionne plus avec le registre Docker, ce qui le rend pratiquement inutile.
DriverDan

D'accord. Espérons que le paquetage dans Raspbian sera bientôt mis à jour, peut-être qu'une demande de bogue / fonctionnalité aidera
Janghou

Il y a 1.8.3 (octobre 2015) dans le référentiel de tests Raspbian.
nphx

Voir blog.hypriot.com/post/your-number-one-source-for-docker-on-arm pour Docker 1.10 sur Raspbian Jessie.
Arjan

3

Docker prend en charge ARMv6 / v7 et même ARM64 (v8?), Vous pouvez donc l'exécuter sur votre Raspberry Pis.

Suivez les instructions officielles de Docker ici: https://docs.docker.com/engine/installation/linux/docker-ce/debian/

Si vous avez Raspbian Jessie ou Stretch (consultez la documentation ci-dessus pour les autres), ce serait:

$ 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

Vous pouvez ensuite le tester (grâce au support Docker multiarch):

$ sudo docker run --rm hello-world

Afin d'éviter de taper sudopour chaque appel Docker, vous pouvez effectuer les étapes supplémentaires suivantes: https://docs.docker.com/engine/installation/linux/linux-postinstall/

Prendre plaisir!

PS: j'ai installé Ubuntu Server 16.04 pour armhf. J'ai ensuite suivi ces instructions (pour Ubuntu) pour y installer Docker: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#set-up-the-repository . Cela fonctionne aussi comme un charme.


2

J'ai toujours utilisé ...

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

Cependant, je viens de voir un avis de dépréciation ce matin ...

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

Je viens de remarquer cela aussi - savez-vous ce que cela signifie? Quelles sont les conséquences de cela?
davidA

Cela signifie que cela fonctionne aujourd'hui, mais cela ne fonctionnera probablement pas demain. Cela signifie également que vous devez écrire au projet moby (c'est-à-dire les personnes qui maintiennent Docker), leur dire à quel point c'est génial et les supplier de continuer à le maintenir. : D
Zak

Savez-vous s'il existe une alternative? Je suppose que je pourrais toujours revenir au processus d'installation manuelle sur Raspbian?
davidA

Non, je ne sais pas. Cependant, le projet Moby devrait être en mesure de répondre à cette question.
Zak

Merci, je tends la main. Je détesterais voir Docker disparaître de Raspbian - exécuter des microservices via Docker sur un RPi est incroyable ...
davA
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.