Docker - Container und Hosts

Hallo, angehende Tech-Enthusiasten! Ich freue mich, diese Docker-Reise mit Ihnen anzutreten. Als Ihr virtueller Lehrer mit jahrelanger Erfahrung werde ich Sie durch die aufregende Welt von Containern und Hosts führen. Machen Sie sich keine Sorgen, wenn Sie neu im Programmieren sind – wir beginnen mit den Grundlagen und bauen unseren Weg nach oben. Tauchen wir ein!

Docker - Container & Hosts

Docker-Images

Stellen Sie sich vor, Sie packen für eine Reise. Sie würden eine Liste aller notwendigen Gegenstände erstellen, oder? Genau das ist ein Docker-Image – eine.Blueprint von allem, was ein Container zum Laufen braucht. Es ist wie ein Rezept für Ihre Anwendung, einschließlich Code, Laufzeitumgebung, Bibliotheken und Systemwerkzeuge.

Erstellung Ihres Ersten Docker-Images

Lassen Sie uns ein einfaches Docker-Image für eine "Hello, World!"-Anwendung erstellen:

# Dockerfile
FROM python:3.9-slim
WORKDIR /app
COPY . /app
CMD ["python", "hello.py"]

Lassen Sie uns das einmal auseinandernehmen:

  1. FROM python:3.9-slim: Das ist so, als ob Sie sagen: "Ich möchte mit einer minimalen Python 3.9-Umgebung starten."
  2. WORKDIR /app: Wir richten unseren Arbeitsbereich ein, als ob wir einen neuen Ordner für unser Projekt erstellen.
  3. COPY . /app: Wir kopieren unsere lokalen Dateien in den Container.
  4. CMD ["python", "hello.py"]: Dies ist der Befehl, der ausgeführt wird, wenn wir den Container starten.

Um dieses Image zu erstellen, würden wir folgendes ausführen:

docker build -t my-hello-world .

einen Container Ausführen

Nun, da wir unser Image haben, lassen Sie uns zum Leben erwecken! Ein Container zu starten, ist wie ein vorinstallierten Computer mit Ihrer Anwendung zu starten.

Grundlegende Container-Ausführung

docker run my-hello-world

Dieser Befehl startet einen Container basierend auf unserem my-hello-world-Image und führt das hello.py-Skript aus.

Interaktiver Modus

Manchmal möchten Sie mit Ihrem Container interagieren. Das ist wie das Öffnen eines Terminals direkt im Container:

docker run -it my-hello-world /bin/bash

Die -it-Flags machen den Container interaktiv, und /bin/bash startet eine Bash-Shell.

Alle Container Auflisten

Während Sie mit Docker arbeiten, werden Sie mehrere Container erstellen. Es ist wichtig, diese im Auge zu behalten. Denken Sie daran, wie Sie überprüfen, welche Anwendungen currently auf Ihrem Computer laufen.

docker ps

Dieser Befehl zeigt alle laufenden Container an. Um alle Container anzuzeigen, einschließlich der gestoppten:

docker ps -a

Hier ist eine praktische Tabelle der docker ps-Optionen:

Option Beschreibung
-a, --all Alle Container anzeigen (standardmäßig werden nur laufende angezeigt)
-q, --quiet Nur Container-IDs anzeigen
-s, --size Gesamte Dateigrößen anzeigen
--format Container mit einer Go-Vorlage ansprechend ausgeben

Einen Container Stoppen

Genau wie das Schließen einer Anwendung auf Ihrem Computer können Sie einen Docker-Container anhalten, wenn Sie fertig sind.

Sanfter Stop

docker stop <container_id>

Dies sendet ein SIGTERM-Signal, das dem Container ermöglicht, sich sanft herunterzufahren.

Erzwungener Stop

docker kill <container_id>

Das ist wie das Force-Closing einer Anwendung. Verwenden Sie es, wenn docker stop nicht funktioniert.

Entfernen eines Containers

Nachdem Sie einen Container gestoppt haben, möchten Sie ihn möglicherweise vollständig entfernen:

docker rm <container_id>

Tipp: Sie können das Anhalten und Entfernen in einem Befehl kombinieren:

docker rm -f <container_id>

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben Ihre ersten Schritte in der Welt der Docker-Container und Hosts unternommen. Denken Sie daran, dass das Arbeiten mit Docker wie das Verwalten einer Flotte winziger, spezialisierte Computer ist. Jeder Container ist eine selbst-contained Umgebung, bereit, Ihre Anwendung auf jedem System konsistent auszuführen.

Zum Abschluss hier ein lustiger Vergleich: Docker-Container sind wie Foodtrucks. Jeder Truck (Container) hat alles, was er braucht, um seine Spezialität (Ihre Anwendung) herzustellen und zu servieren. Sie können diese Trucks leicht umziehen, starten oder wegräumen, wie nötig.

In unserem nächsten Lesson tauchen wir tiefer in Docker-Netzwerke und Datenpersistenz ein. Bis dahin, viel Spaß beim Containerisieren!

Credits: Image by storyset