marni-markdownAlle Markdowns an einem Ort
← Zurück

M169 Docker

Grundlagen was ist Docker/was nicht

Docker ist eine Open-Source-Plattform, die es Entwicklern ermöglicht, Anwendungen in Containern zu erstellen, zu verteilen und auszuführen. Docker ist kein Betriebssystem oder eine virtuelle Maschine, sondern eine Container-Plattform.

Docker vs. VM

Im Vergleich zu virtuellen Maschinen (VMs) bieten Docker-Container mehr Flexibilität und Skalierbarkeit, da sie keine eigene Kopie des Betriebssystems benötigen. Docker-Container teilen das Betriebssystem des Host-Systems, was die Leistung verbessert und die Verwaltung erleichtert. VMs haben einen eigenen virtuellen Kernenl und Docker Container teilen sich den Physischen Kernel.

Vor- & Nachteile

Zu den Vorteilen von Docker gehören schnelle Bereitstellung, Portabilität, Wartbarkeit, Skalierbarkeit und Sicherheit. Docker ermöglicht es auch, Anwendungen schnell in verschiedenen Umgebungen bereitzustellen, z.B. auf Test-, Staging- und Produktionsumgebungen.

Weshalb Docker und nicht VM

Im Vergleich zu VMs benötigen Docker-Container weniger Ressourcen, sind schneller zu starten und benötigen weniger Speicherplatz. Docker bietet auch mehr Kontrolle über die Netzwerkkommunikation und ermöglicht die Isolation von Anwendungen und Diensten.

Docker Commands

# Neuen Container anhand eines Image erstellen und laufen lassen
$ docker run (-d --> Detach, -p 8080:8080) [DOCKER_IMAGE]
# Docker Image durch ein Dockerfile bauen
$ docker build (-t TAG --> Tag für das Image setzen) [DIRECTORY]
# Images auflisten
$ docker images
# Aktive Container auflisten
$ docker ps
# Image von Registry downloaden
$ docker pull
# Image auf Registry uploaden
$ docker push
# Stoppt einen laufenden Docker-Container.
$ docker stop
#  Entfernt einen Docker-Container.
$ docker rm
# Führt eine Befehlszeile innerhalb eines laufenden Docker-Containers aus
$ docker exec

Server-Client

Docker besteht aus einem Client-Server-Modell, bei dem der Docker-Client mit dem Docker-Daemon kommuniziert. Der Docker-Client ist das primäre Benutzeroberfläche-Tool, während der Docker-Daemon die Container erstellt, startet und verwaltet.

Docker Architecture

Daemon

Der Docker-Daemon ist ein Hintergrundprozess, der auf dem Host-System läuft und Docker-Container erstellt, verwaltet und überwacht. Er nimmt Befehle vom Docker-Client entgegen und führt sie aus.

Installation von Docker (Vorbereitungen, Befehle)

Windows

Linux

Sinnhaftigkeit von Docker

Docker ist sinnvoll, weil es Entwicklern ermöglicht, Anwendungen schnell und einfach bereitzustellen und zu skalieren. Docker verbessert auch die Zusammenarbeit und Integration zwischen Entwicklungs- und Betriebsabteilungen.

Docker im DevOps

Docker ist ein wichtiges Werkzeug im DevOps-Bereich, da es die Zusammenarbeit und die schnelle Bereitstellung von Anwendungen ermöglicht. Docker unterstützt auch Automatisierung, Testautomatisierung und Continuous Integration/Continuous Delivery (CI/CD). Es befindet sich im Bereich Deployment.

Docker Community

Die Docker-Community ist eine Gruppe von Entwicklern und Enthusiasten, die an der Entwicklung und Verbesserung von Docker beteiligt sind. Die Docker-Community trägt zur Entwicklung neuer Funktionen, zur Lösung von Problemen und zur Erstellung von Docker-basierten Projekten bei.