Site icon bintorosoft.com

Docker Grundlagen: Container, Images und Volumes einfach erklärt

Penguin with glasses and a surprised look on his face is looking at a laptop on white background.

Docker hat die Art und Weise revolutioniert, wie Anwendungen entwickelt, bereitgestellt und betrieben werden. Mit Containern lassen sich Softwareumgebungen konsistent und isoliert ausführen, unabhängig vom zugrunde liegenden System. In diesem Tutorial werden die grundlegenden Konzepte von Docker – Container, Images und Volumes – praxisnah und leicht verständlich erklärt, sodass Einsteiger und IT-Profis direkt damit arbeiten können.

Was ist ein Docker-Container?

Ein Docker-Container ist eine isolierte Laufzeitumgebung, die eine Anwendung samt aller Abhängigkeiten enthält. Container nutzen die Ressourcen des Host-Systems, ohne eine eigene virtuelle Maschine zu benötigen, wodurch sie leichtgewichtig und schnell startbar sind.

Eigenschaften von Containern

Beispiel: Einen Container starten

Mit folgendem Befehl wird ein Ubuntu-Container gestartet:

docker run -it ubuntu bash

Hierbei öffnet sich eine interaktive Shell innerhalb des Containers.

Docker-Images verstehen

Ein Docker-Image ist ein unveränderliches Template, das alle benötigten Komponenten für einen Container enthält, wie Betriebssystem, Bibliotheken und Anwendungen. Images dienen als Basis für Container.

Wichtige Punkte zu Images

Ein Image herunterladen

Beispiel: Herunterladen des offiziellen Ubuntu-Images:

docker pull ubuntu:latest

Eigene Images erstellen

Mit einer Dockerfile lässt sich ein eigenes Image definieren:

FROM ubuntu:latest
RUN apt update && apt install -y curl
CMD ["bash"]

Erstellen des Images:

docker build -t mein-ubuntu-image .

Docker-Volumes: Daten persistent speichern

Container sind standardmäßig flüchtig. Nach dem Stoppen oder Löschen gehen alle Daten verloren. Docker-Volumes ermöglichen die dauerhafte Speicherung von Daten außerhalb des Containers.

Volumes erstellen und nutzen

Bind-Mounts vs. Volumes

Bind-Mounts binden ein Verzeichnis vom Host direkt in den Container ein, während Volumes von Docker verwaltet werden. Volumes bieten Vorteile wie Backups, bessere Performance und einfache Verwaltung.

Container-Verwaltung mit Docker CLI

Docker bietet eine Vielzahl von Befehlen, um Container zu verwalten:

Netzwerkgrundlagen in Docker

Docker erstellt standardmäßig ein Bridge-Netzwerk, über das Container untereinander kommunizieren können. Benutzerdefinierte Netzwerke ermöglichen flexiblere Szenarien.

Bridge-Netzwerk erstellen

docker network create --driver bridge mein_net

Container verbinden:

docker run -d --network mein_net --name container1 nginx

Ports veröffentlichen

Um Container-Dienste für den Host zugänglich zu machen, müssen Ports gemappt werden:

docker run -d -p 8080:80 nginx

Hierbei wird Port 80 im Container auf Port 8080 des Hosts weitergeleitet.

Praktische Beispiele für Einsteiger

Tipps für effizientes Arbeiten mit Docker

Docker für die Entwicklung nutzen

Docker ermöglicht Entwicklern, komplette Entwicklungsumgebungen zu definieren, zu teilen und reproduzierbar zu starten. In Kombination mit Docker Compose lassen sich komplexe Anwendungen mit mehreren Containern orchestrieren.

Docker Compose Beispiel

Docker Compose definiert Multi-Container-Anwendungen in einer docker-compose.yml:

version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: pass
    volumes:
      - db_data:/var/lib/mysql

volumes:
db_data:

Anwendung starten:

docker-compose up -d

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version