Container-basierte Ausführungsumgebungen

Die Nutzung und Ausführung von Code kann komplexe Voraussetzungen an die Ausführungsumgebung stellen. Code Notebooks sind bereits eine einfache Möglichkeit, eine Ausführungsumgebung zu kapseln. Bei sehr individuellen Anforderungen an das Betriebssystem, vorinstallierter Software oder benötigten Programmbibliotheken können Code Notebooks an Grenzen stoßen. Dann können Sie sogenannte Container-Technologien einsetzen. 

Allgemein gesagt, bieten Container-Technologien eine isolierte Ausführungsumgebung mit allem, was zur Ausführung einer Anwendung benötigt wird. Ein Container wirkt wie ein eigenes Betriebssystem, teilt sich aber die Ressourcen mit dem sogenannten Host-Betriebssystem. Einfach erklärt: Unter Windows können somit nur Windows-Container laufen und unter Linux nur Linux-Container. Container sind portabel und damit teilbar. Sie bieten somit eine gute Möglichkeit, Ihren Code und alle Abhängigkeiten zu verpacken – auch im Sinne der Reproduzierbarkeit.

Die bekannteste Container-Plattform ist Docker. Die Komponenten von Docker sind größtenteils Open Source und für die private Nutzung kostenlos. Darüber hinaus gibt es kostenpflichtige Features sowie Angebote für Teams und Unternehmen. 

Docker ermöglicht die Erstellung, Ausführung und Verwaltung von Containern. Über eine Textdatei namens “Dockerfile” werden Anweisungen spezifiziert, um ein ausführbares Docker-Image (Container) zu erstellen.  Für die Verwaltung und das Teilen von erstellten Docker-Images bietet Docker mit Docker Hub einen eigenen Service an. 

Zur Erzeugung und Ausführung eines Container-Images brauchen Container-Technologien wie Docker entsprechende Software-Umgebungen. Mit Docker Desktop gibt es eine einfach zu installierende Umgebung mit grafischer Oberfläche. Wenn Sie diese nicht lokal installieren möchten oder können, gibt es für Docker oft auch sogenannte Cloud-Umgebungen. Seitens Docker gibt es dazu aber bislang nur eine kommerzielle Enterprise-Lösung, die sich eher an Unternehmen richtet. Die Images lassen sich auch in Cloud-Umgebungen von Google und Amazon ausführen. 

Docker wird in der Wissenschaft durchaus genutzt. Als Textdateien lassen sich Dockerfiles beispielsweise auch auf GitHub verwalten und teilen. Erstellte Docker-Images lassen sich auf Docker Hub teilen. Journals der American Economics Association (AEA) akzeptieren zudem Docker-Images, damit Ihre Forschung auf Reproduzierbarkeit hin überprüft werden kann. Um den Einstieg zu erleichtern, können Sie auch Dockerfiles der AEA nachnutzen, die über GitHub bereitgestellt werden. Aus diesen Dockerfiles können Sie beispielsweise Docker-Images für eine rudimentäre R- und Stata-Umgebung erstellen und damit weiterarbeiten. Weitere Dockerfiles oder auch bereits erstellte Docker-Images werden über das Rocker Project für verschiedene Anwendungsfälle zur Nachnutzung bereitgestellt.

Tipp: Eine gute Einführung in Container und Docker gibt es bei “The Turing Way”.