/ / Docker na systemach wbudowanych, dlaczego nie? - doker, kontenery, embedded-linux, intel-edison

Docker na systemach wbudowanych, dlaczego nie? - docker, kontenery, embedded-linux, intel-edison

Ostatnio rzuciłem na nią projektobejmuje koordynację kilku (wbudowanych w Linuksa) urządzeń, wdrożenie na nich oprogramowania i umożliwienie aktualizacji aplikacji, gdy baza kodu zostanie zaktualizowana w repozytorium git.

Początkowa myśl polegała na stworzeniu standardowego obrazu dla każdego urządzenia, a ja wyruszyłem, próbując zainstalować dokera na UDOO Quad i Intel Edison, aby rozpocząć, ale do tej pory bez powodzenia.

Myślę, że to dobry pomysłzainstaluj Docker na urządzeniach osadzonych - ale w takim przypadku na pewno zostałby już przeniesiony. Jedyną grupą, która wydaje się podejmować takie wysiłki, jest Resin.io.

Czy brakuje mi czegoś lub istnieje wyraźny powód, dla którego Docker nie ma sensu na urządzeniach wbudowanych? Jeśli nie ma powodu, i to robi warto uruchamiać Dockera na systemach wbudowanych, czy jest coś, co przeoczyłem: czy są jakieś źródła dyskusji na temat portowania lub jak to zrobić?

Odpowiedzi:

5 dla odpowiedzi № 1

Rozważałem uruchomienie dokera na urządzeniach osadzonych (system mips), ale nie poszedłem w tym kierunku. Moim skromnym zdaniem są z tym pewne problemy:

  1. Docker jest zaimplementowany w Golang. Obecnie nie ma dostępnego łańcucha narzędzi dla kompilacji MIP. Konieczne będzie samodzielne utworzenie łańcucha narzędzi za pomocą gcc-go.

  2. Rozmiar okna dokowanego jest większy niż lxc. Na komputerze stacjonarnym nie stanowi to problemu, ale urządzenie osadzone ma ograniczoną pamięć flash.

  3. Docker korzysta z dość aktualnej funkcji jądra systemu Linux. Czasami wersja jądra na urządzeniach wbudowanych nie jest tak nowa i potrzebny jest port back-port, aby działał.

  4. Obraz dokera musi być zbudowany na tym samymarchitektura jako środowisko wykonawcze. Oznacza to, że jeśli chcesz uruchomić kontener dokera na Raspberry Pi, obraz dokera musi być zbudowany na systemie architektury ARM. QEMU można wykorzystać do budowy obrazu dokera w chmurze, ale nie obsługuje on wszystkich architektur procesorów używanych w systemie wbudowanym (na przykład obecnie nie obsługuje MIPS)

Ostatecznie lxc został wybrany do konkretnego zadania uruchamiania kontenera na urządzeniu osadzonym. Ma ograniczone funkcje w porównaniu do dokera, ale obecnie odpowiada wymaganiom projektu.


1 dla odpowiedzi nr 2

Na LinkedIn jest świetny artykuł opisujący jego doświadczenia https://www.linkedin.com/pulse/whale-jar-when-running-docker-embedded-linux-good-thing-fletcher#pulse-comments-urn:li:article:7736487387895237975


0 dla odpowiedzi № 3

Często systemy wbudowane mają bardzo wolne tempozmiana. Docker działa dobrze w przypadku minimalnej wersji, a następnie nakładania warstw na wierzch. Jeśli chcesz poświęcić narzut związany z uruchomieniem dokera w minimalnym systemie osadzonym, aby doker mógł mieć system kompilacji i stałą szybkość zmian, możesz go zbadać.