Containerisierte Anwendungen mit Docker
Warum Container?
Als Entwickler brauchen wir andere Programme, damit Programme funktionieren, und deshalb müssen wir diese Programme auch zum Laufen bringen. Wenn ich gerade erst angefangen habe, etwas über das Programmieren zu lernen, beginnt der Prozess im Allgemeinen damit, dass ich die notwendigen Abhängigkeiten installiere, bevor eine einzige Codezeile geschrieben wird. Als ich mit der Zeit begann, das mythische Land zu erkunden, das als „Produktion“ bekannt ist, wurde mir klar, dass die bloße Installation von Abhängigkeiten nicht ausreicht. Was ist, wenn wir ein neues Projekt starten und die neuesten Technologien verwenden müssen? Wie wäre es mit der Einrichtung einer Entwicklungsumgebung unter Windows statt unter macOS?
Keine Sorge, Container kommen zur Rettung. Ein Container ist eine Standardsoftwareeinheit, die Code und alle seine Abhängigkeiten verpackt, sodass die Anwendung schnell und zuverlässig von einer Computerumgebung in eine andere ausgeführt werden kann. Container sind so aufgebaut, dass sie alles enthalten, was zum Ausführen einer Anwendung erforderlich ist: Code, Laufzeit, Systemtools, Systembibliotheken und Einstellungen.
Docker für Container und wie es funktioniert
Docker ist eine Plattform, die es Entwicklern ermöglicht, Anwendungen einfach in Containern zu erstellen, bereitzustellen und auszuführen. Es verwendet zwei Konzepte, die auf den meisten Betriebssystemen (OS) existieren, um eine Containerisierung zu erreichen.
Namensräume
Namespacing ist eine Betriebssystemfunktion, die die Segmentierung von Hardwareressourcen auf einem Computer ermöglicht. Ein laufender Prozess (oder eine Gruppe von Prozessen) kann über den Kernel mit jeder segmentierten Hardware kommunizieren und diese Kommunikation an einen bestimmten Namespace weiterleiten.
Kontrollgruppen
Kontrollgruppen (cgroups) sind eine Betriebssystemfunktion, die begrenzt, wie viele Ressourcen ein Prozess verwenden darf. Das Limit kann auf verschiedene Hardware wie Arbeitsspeicher, CPU-Auslastung, Festplattenspeicher und mehr angewendet werden.
Namespaces und Cgroups erleichtern die Erstellung eines Containers, der lediglich aus einer Reihe von Prozessen besteht, denen eine Gruppierung begrenzter Ressourcen zugewiesen ist.
Erstellen eines Containers mit Docker
Um einen Container für eine Anwendung zu erstellen, müssen wir zunächst ein Image einrichten, das einen Verzeichnis-Snapshot für unsere Anwendung darstellt. Die Anweisungen zum Erstellen eines Docker-Images finden Sie im DockerfileFolgenden.
FROM node:alpine
COPY . /app
WORKDIR /app
CMD ["npm", "start"]
Um das Docker-Image zu erstellen, führen Sie den folgenden Befehl in dem Verzeichnis aus, in dem Dockerfilesich das befindet:
docker build -t <image-name> .
docker run -it <image-name>
Abschluss
In diesem Artikel haben wir besprochen, wie Docker-Container unter der Haube funktionieren, und auch ein kurzes Beispiel dafür gegeben, wie man einen Docker-Container erstellt, indem man zunächst ein Image einrichtet. Ich hoffe, dies hilft Ihnen, die Technologie und ihre Einsatzmöglichkeiten etwas besser zu verstehen!

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































