

Wie anfangen?
Linux Distributionen
Alpine Linux
Debian
Basis-Container
Basis-Container
Python 3
NodeJS
LAMP (Apache, SQLite3, PHP)
Net tools
Fertige Container
icom Data Suite (iDS)
AnyViz Cloud Adapter
Kickstarter
Node-RED
Eigene Container entwickeln
SDK
Skripte zum Container erzeugen
Container für INSYS Industrie-Router
(oder andere auf armv7, aarch64 oder amd64 basierende Maschine)
Auf INSYS Industrie-Router können LXC Container laufen, die viel zusätzliche Funktionalität hinzufügen!
Senden Sie Fragen, Wünsche, Fehlerberichte oder Ideen an info@m3-container.net
Wie anfangen?
Nutzen Sie dieses Poster (pdf en, de) um Ihren persönlichen Einstieg in die Container zu finden. Es gibt mindestens vier Level:
Fertige Container
Produkte wie die icom Data Suite (iDS), Produkte von Partnern wie z.B. AnyViz oder Community-Projekte wie Node-RED ermöglichen Funktionalität durch konfigurieren statt programmieren.
Bekannte Linux Distributionen
Container wie Alpine Linux oder Debian bringen ihre eigene Paket-Manager mit (apk, apt).
Basis-Container
Diese sehr kleinen Container enthalten integrierte Skript-Sprachen wie Python, NodeJS, ash, PHP.
Eigene Container entwickeln
Das ist die Wahl der Entwickler: Installieren Sie ein SDK, klonen Sie das Repository mit vorbereiteten Build-Skripten und erstellen Sie Ihre Container von Grund auf. So werden die Basis-Container erstellt.
Alpine Linux
Download Alpine.tar: armv7
Der Demo-Container basierend auf Alpine Linux enthält lediglich einem SSH-Server für den Login.
Alpine-Linux verwendet musl als Standard C-Bibliothek anstatt glibc, was in den meisten Fällen zu kleineren Binaries führt. Das SDK unterstützt die musl nicht, daher ist es nicht möglich, selber für Alpine Linux zu kompilieren.
Alpine-Linux verfügt über einen umfangreichen Katalog an kompilierten Applikationen und Bibliotheken.. Verwenden Sie den integrierten Paket-Manager "apk" für Update, Upgrades oder um zusätzliche Software zu installieren.
Debian
Download Debian.tar: armv7
Der Demo-Container basierend auf Debian enthält lediglich einem SSH-Server für den Login.
Bei diesem Container kann man am bequemsten Funktionalität hinzufügen, weil er auf dem sehr beliebten Debian basiert. Er eignet sich sehr gut für einen ersten PoC (Proof of Concept). Allerdings kommt dieser Komfort mit dem Nachteil, dass dieser Container sehr schnell an Größe zunimmt. Daher eignen sich solche Container oft wenig für produktive Umgebungen.
Verwenden Sie den integrierten Paket-Manager "apt" für Update, Upgrades oder um zusätzliche Software zu installieren.
Basis-Container
Download container_default.tar: armv7, aarch64, amd64
Dieser minimale Demo-Container enthält lediglich einen SSH-Server für den Login. Er dient als Beispiel oder als Grundlage für eigene Container, die mit dem SDK und den zur Verfügung gestellten Scripten erstellt werden. Außerdem eignet sich dieser Container für einfache Applikationen, die lediglich eine minimale Shell (ash) benötigen
Python 3
Download container_python3.tar: armv7, aarch64, amd64
Dieser minimale Demo-Container enthält Python 3 und schon ein paar vorinstallierte Module wie z.B. pyserial, requests, certifi, urllib. Weitere Pakete können mit dem pip installiert werden.
NodeJS
Download container_nodejs.tar: armv7, aarch64, amd64
Dieser minimale Demo-Container enthält NodeJS und den Paket-Manager npm, mit dem weitere Module nachinstalliert werden können.
LAMP (Linux, Apache, SQLite3, PHP)
Download container_LAMP.tar: armv7, aarch64, amd64
Dieser minimale Demo-Container enthält einen klassischen LAMP stack bestehend aus Linux, Apache Web-Server, SQLite3 Datenbank und PHP. Außerdem verwendet er runit zum Starten/Stoppen von Prozessen.
Net tools
Download container_net-tools.tar: armv7, aarch64, amd64
Dieser minimale Demo-Container enthält ein paar Netzwerk-Werkzeuge wie tcpdump, nmap, nping, iperf, mosquitto (MQTT broker), httping, curl oder iptables. Er enthält außerdem Programme um eigene VPN-Tunnel aufzubauen wie z.B. OpenVPN, wg (wireguard) oder stunnel. Verwenden Sie diesen Container auch zum Debuggen! Sie können sich damit einen Jump-Host in einem entfernten Netzwerk installieren, die lokalen Netzwerke über Bridges anbinden und von dort die Fehlersuche zu betreiben.
icom Data Suite (iDS)
Download: iDS Download-Seite
Produktseite: https://www.insys-icom.com
Die iDS enthält IoT-Software zur Alarmierung und Überwachung von Datenpunkten mittels verschiedener Industrie-Protokolle wie z.B. Modbus, MQTT, OPC UA oder Siemens S7.
AnyViz Cloud Adapter
Download AnyViz Cloud Adapter (Container): armv7
Dokumentation: Installations-Anleitung
Produktseite: https://www.anyviz.io
AnyViz ist der wohl einfachste Weg, Maschinen- und Anlagensteuerungen über die Ferne zu überwachen, bedienen und analysieren – dank der Cloud von jedem Ort.
Mit diesem Contaienr können OPC-UA-, Modbus-, Siemens-, Beckhoff-, EtherNet/IP-, BACnet- and M-Bus-Geräte mit der Cloud verbunden werden.
Kickstarter
Download Kickstarter: armv7
Produktseite: https://github.com/insys-icom/Kickstarter
Kickstarter kann andere, neue INSYS icom OS-Geräte vollautomatisch und parallel in Betrieb nehmen (kickstarten).
Node-RED
Download Node-RED.tar: armv7
Dieser Demo-Container basiert auf Alpine Linux. Zusätzliche Module können mit npm hinzugefügt werden. Verwenden Sie diese Anleitung, um zusätzliche Module zu installieren, die einen Compiler für benötigen.
Software Development Kit (SDK)
Download M3_SDK_LXC.tar.gz: Version 7 (alt: Version 6)
Dieses SDK ist lediglich ein Vorschlag, Sie können auch andere Toolchains verwenden, wenn Sie diese bevorzugen.
Es enthält Werkzeuge zum Cross-Compilieren für die armv7- und aarch64- (arm64)-Architektur. Es ist als LXC-Container sofort startbar oder lässt sich in wenigen Schritten in ein Docker-Image verwandeln. In Verbindung mit Build-Skripten lassen sich damit alle Schritte zur Erstellung eigener Container automatisieren.
Dieses SDK enthält keine IDE, verwendet
- über seine Shell,
- integriert in Ihre Lieblings-IDE oder Editor oder
- von Ihrer CI/CD Pipeline
Die Idee ist, dass das SDK lediglich die Tools zur Verfügung stellt, die dann vom Host-PC verwendet und gestartet werden, z.B. Ihr existierender Editor.
Diese ersten Schritte zeigen den Weg zum ersten selbst erstellten Container.
Das SDK enthält ein Gentoo Linux ohne grafische UI (headless). Es kann mit den typischen Gentoo-Tools (emerge) aktualisiert und erweitert werden. Falls es nicht als Container auf einem Linux-System gestartet werden kann, kann es auch mit einem Bootloader und Kernel versehen werden und so als Image einer Virtuelle Machine gestartet werden.
Skripte zum Erzeugen eigener Container
Container zu haben ist schön, Container automatisiert und reproduzierbar erzeugen zu können ist noch schöner!
Dieses git-Repository bietet Skripte, die komplette Container erzeugen. Clonen Sie dieses Repo und mounten Sie das Verzeichnis des Clones (oder gleich das ganze Home-Verzeichnis Ihres Benutzeres) in das installierte SDK. Anschließend können Sie im SDK die oben beschriebenen Basis-Container erstellen (siehe auch ersten Schritte) Zusammen mit Ihrer eigenen Software haben Sie nun alles, um Container reproduzierbar selber erzeugen zu können und verfügen durch die Skripte gleich über eine rudimentäre Dokumentation.
Hinweis! Verwenden Sie für jedes neue Container-Projekt einen neuen Clone der Skripte! Damit entkoppeln Sie die Projekte zeitlich voneinander und müssen nicht zwangsweise mehrere Projekte zugleich updaten. Diese Skripte werden sich im Laufe der Zeit ändern und eine Versionierung ist nicht vorgesehen.