Doker na Raspbian?

24

Jak mógłbym zacząć korzystać z Dockera ( https://www.docker.io ) na Raspbian?

Instrukcje, które znalazłem, są albo bardzo ręcznym procesem opartym na Raspbian, ale z bardzo starym jądrem, które wydaje się wymagać kilku łatek. Istnieje również dobrze znana wersja autorstwa Żywicy.io, ale została zaprojektowana specjalnie dla Arch Linux.

Obecne jądro Raspbian to 3.10.25, które jest wystarczająco nowoczesne, aby mieć większość rzeczy, których potrzebuje Docker. Nie jestem ponad budowaniem nowego jądra, ale czy nadal jest to konieczne?

Czy ktoś wymyślił, jak uruchomić Dockera i jego wymagania na Pi?

Martijn Heemels
źródło
Interesujące pytanie. Będę również zainteresowany odpowiedzią na to pytanie. Czy w ogóle próbowałeś tych instrukcji?
Jivings
1
Nie, przeczytałem wszystko, co mogłem znaleźć. W szczególności chcę używać Raspbian, więc instrukcje Arch nie były zbyt przydatne. Instrukcje Raspbian autorstwa Kena Cochrane'a wydają się bardzo stare, wymagając wielu kroków, aby nawet zaktualizować Raspbian, nie mówiąc już o Dockerze, a nawet nie doprowadzić do działającej konfiguracji. Miałem nadzieję zebrać trochę informacji, zanim spędzę nad tym mnóstwo czasu.
Martijn Heemels,
1
Zrozumiałem, że kontenery Docker nie są tak naprawdę architekturami krzyżowymi. Ponieważ kontenery współużytkują jądro z systemem operacyjnym hosta, aplikacje wewnątrz kontenerów są powiązane z architekturą armv6. Nie możesz zbudować obrazu dokera na x86 i uruchomić go na Armv6, co ogranicza system kompilacji. Dostępny jest tutaj obraz podstawowy: index.docker.io/u/resin/rpi-raspbian
Martijn Heemels
Czy to możliwe, ale nie robić tego, co chcesz?
Jivings
1
Cóż, wygląda na to, że ich roszczenia nie self-sufficient container that will run virtually anywheresą wystarczające . Wygląda na to, że działa na czymś, doker musi być kompatybilny z urządzeniem, na którym działa. Brzmi jak Monolub Javaktóre są bardziej obiecujące, ale nie tak naprawdę, czego potrzebujesz. Dlaczego w ogóle potrzebujesz tego na Pi? Jeśli tworzysz dla Linuksa, powinieneś naprawdę rozwijać się w tym, co obsługuje natywnie.
Piotr Kula,

Odpowiedzi:

14

Tak, zbudowałem jądro i przeniosłem Dockera 1.0 do Raspbian OS: Linux raspberrypi 3.10.37+ # 1 PREEMPT Sobota 19 kwietnia 13:28:05 UTC 2014 armv6l GNU / Linux

Udostępniłem swoje wyniki na GitHub, aby oszczędzić innym bólu. Jak zwykle podałem to „tak, jak jest” bez gwarancji ;-)

Plik tar jądra i dokera można znaleźć tutaj:

https://github.com/stevef1uk/docker_for_rpi

Seahope
źródło
1
To bardzo interesujące. Dzięki za udostępnienie. Czy miałbyś coś przeciwko dodaniu kroków do kompilacji jądra? W szczególności, które opcje zmieniłeś w konfiguracji? Zaraz spróbuję zbudować własne jądro, wykonując kroki wymienione na elinux.org/RPi_Kernel_Compilation .
Martijn Heemels,
3
W rzeczywistości już to zrobiłem, a także jak krzyżować kompilację. Moje blogi można znaleźć tutaj: stevef1uk.blogspot.com/2014/06/… i stevef1uk.blogspot.com/2014/06/…
Seahope
7

Możesz także użyć HypriotOS, który zapewnia najnowsze jądro Dockera i Linuksa dla Raspberry Pi. Po prostu sflashuj obraz i zobacz, jak działa Docker!

http://blog.hypriot.com/

(ujawnienie: Jestem członkiem zespołu Hypriot)

Mathias Renner
źródło
Dzięki, korzystam z twojego nowego obrazu na moim nowym Pi2. Działa świetnie! Wypróbowałem to z różnymi obrazami armhf z Docker Hub.
Martijn Heemels,
1
@MathiasRenner czy istnieje powód, dla którego hipriota nie jest oprogramowaniem typu open source? Czy planujesz zarabiać na obrazie?
jottr
1
@ jottr Dziękujemy za zainteresowanie! W rzeczywistości wszystko, czego potrzebuje Hypriot, aby uruchomić Docker na RPI, jest dostępne na zasadach open source. Potrzebujesz (1) odpowiedniego jądra (github.com/hypriot/rpi-kernel-builder) i (2) pliku binarnego Docker (github.com/hypriot/rpi-docker-builder). Wystarczy zbudować i zainstalować oba, a będziesz gotowy!
Mathias Renner,
@MathiasRenner ah great! Dzięki za wskaźniki.
jottr
Działa to również ładnie na Raspbian Jessie; blog.hypriot.com/post/your-number-one-source-for-docker-on-arm
Arjan
3

Jeśli używasz Raspbian:

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

Docker znajduje się teraz w domyślnym repozytorium,

Aktualizacja : niestety ta wersja jest dość stara, więc pobieranie zdjęć z Docker Hub nie będzie w tej chwili działać.

Janghou
źródło
Wersja w domyślnym repozytorium jest super stara, od tego komentarza 1.3.3. Nie działa już z rejestrem dokera, co czyni go w większości bezużytecznym.
DriverDan
Zgoda. Mam nadzieję, że pakiet w Raspbian zostanie wkrótce zaktualizowany, być może prośba o błąd / funkcję pomoże
Janghou,
W repozytorium testów Raspbian znajduje się 1.8.3 (październik 2015 r.).
nphx
Zobacz blog.hypriot.com/post/your-number-one-source-for-docker-on-arm dla Docker 1.10 na Raspbian Jessie.
Arjan
3

Docker obsługuje ARMv6 / v7, a nawet ARM64 (v8?), Więc możesz go uruchomić na swoim Raspberry Pis.

Postępuj zgodnie z oficjalnymi instrukcjami Dockera tutaj: https://docs.docker.com/engine/installation/linux/docker-ce/debian/

Jeśli masz Raspbian Jessie lub Stretch (sprawdź powyższą dokumentację dla innych), będzie to:

$ 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

Następnie możesz go przetestować (dzięki obsłudze Docker multiarch):

$ sudo docker run --rm hello-world

Aby uniknąć pisania sudoprzy każdym wywołaniu Docker, możesz wykonać następujące dodatkowe kroki: https://docs.docker.com/engine/installation/linux/linux-postinstall/

Cieszyć się!

PS: Zainstalowałem Ubuntu Server 16.04 dla armhf. Następnie wykonałem następujące instrukcje (dla Ubuntu), aby zainstalować na nim Docker: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#set-up-the-repository . Działa również jak urok.

Huygens
źródło
2

Zawsze używałem ...

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

Jednak dziś rano zobaczyłem informację o wycofaniu się ...

WARNING: raspbian is no longer updated @ https://get.docker.com/
         Installing the legacy docker-engine package...
Zak
źródło
Właśnie to zauważyłem - czy wiesz, co to znaczy? Jakie są tego konsekwencje?
davidA
Oznacza to, że działa dzisiaj, ale prawdopodobnie nie zadziała jutro. Oznacza to również, że powinieneś napisać do projektu moby (tj. Ludzi, którzy utrzymują dokera), powiedzieć im, jak niesamowite jest i błagać ich o dalsze utrzymanie. : D
Zak.
Czy wiesz, czy istnieje alternatywa? Prawdopodobnie zawsze mogłem wrócić do procesu ręcznej instalacji na Raspbian?
davidA
Nie, nie wiem Jednak projekt Moby powinien być w stanie odpowiedzieć na to pytanie.
Zak.
Dzięki, wyciągam rękę. Nienawidzę patrzeć, jak Docker znika z raspbian - uruchamianie mikrousług przez Docker na RPi jest niesamowite ...
davidA