Was ist Docker?
Docker ist ein Tool, mit dem Sie schlanke, eigenständige Pakete erstellen, bereitstellen und verwalten können, die alles enthalten, was zum Ausführen einer Anwendung erforderlich ist (Code, Bibliotheken, Laufzeit, Systemeinstellungen und Abhängigkeiten). Diese Pakete werden Container genannt.
Jeder Container wird mit eigener CPU, Speicher, Block-I/O und eigenen Netzwerkressourcen bereitgestellt, ohne von einem einzelnen Kernel und Betriebssystem abhängig zu sein. Obwohl es am einfachsten ist, Docker und virtuelle Maschinen zu vergleichen, unterscheiden sie sich in der Art und Weise, wie sie Ressourcen teilen oder zuweisen.
Container helfen, die Funktionalität Ihres Linode auf verschiedene Weise zu erweitern. Beispielsweise können Sie mehrere Instanzen von nginx mit mehreren Stagings (z. B. Entwicklung und Produktion) bereitstellen. Anders als bei der Bereitstellung mehrerer virtueller Maschinen werden die bereitgestellten Container die Ressourcen Ihres Linode nicht belasten.
Docker-Images
Jeder Docker-Container wird aus einem Image erstellt. Sie ziehen Images aus einer Docker-Registrierung (z. B. dem offiziellen Docker-Hub) und verwenden sie zum Erstellen von Containern. Ein einzelnes Image kann zahlreiche Container erstellen. Beispielsweise könnten Sie das neueste nginx-Image verwenden, um einen Webserver-Container bereitzustellen für:
- Webentwickler
- Testen
- Produktion
- Webanwendungen
Dockerfiles
Ein Dockerfile
ist eine Textdatei, die die notwendigen Befehle zum Zusammenstellen eines Bildes enthält. Sobald ein Dockerfile geschrieben ist, verwendet der Administrator den docker build
Befehl, um ein Bild basierend auf den Befehlen in der Datei zu erstellen. Die Befehle und Informationen in der Dockerfile
kann so konfiguriert werden, dass bestimmte Softwareversionen und Abhängigkeiten verwendet werden, um konsistente und stabile Bereitstellungen zu gewährleisten.
Ein Dockerfile verwendet die folgenden Befehle zum Erstellen der Images:
- HINZUFÜGEN - Kopieren Sie Dateien von einer Quelle auf dem Host in das eigene Dateisystem des Containers am festgelegten Ziel.
- CMD - Ausführen eines bestimmten Befehls innerhalb des Containers.
- Einstiegspunkt - Legen Sie eine Standardanwendung fest, die jedes Mal verwendet wird, wenn ein Container mit dem Image erstellt wird.
- ENV - Umgebungsvariablen setzen.
- AUSSETZEN - einen bestimmten Port freigeben, um die Vernetzung zwischen dem Container und der Außenwelt zu ermöglichen.
- VON - Definieren Sie das Basis-Image, das zum Starten des Build-Prozesses verwendet wird.
- WARTER - Definieren Sie den vollständigen Namen und die E-Mail-Adresse des Bilderstellers.
- LAUFEN - zentrale Ausführungsanweisung für Dockerfiles.
- BENUTZER - Legen Sie die UID (den Benutzernamen) fest, die den Container ausführen wird.
- LAUTSTÄRKE - ermöglicht den Zugriff vom Container auf ein Verzeichnis auf dem Host-Rechner.
- ARBEITSVERZ - Legen Sie den Pfad fest, in dem der mit CMD definierte Befehl ausgeführt werden soll.
Nicht jeder Befehl muss verwendet werden. Unten ist ein funktionierendes Dockerfile-Beispiel, das nur den MAINTAINER
verwendet , FROM
, und RUN
Befehle:
- Datei:Dockerfile
1 2 3
MAINTAINER NAME EMAIL FROM ubuntu:latest RUN apt-get -y update && apt-get -y upgrade && apt-get install -y build-essential
Docker-Schwarm
Docker macht es einfach, Server zu einem Cluster zusammenzuschließen, der als Docker Swarm bezeichnet wird. Sobald Sie einen Schwarmmanager oder Anführer erstellt haben und an den Leader angefügte Knoten können Sie die Containerbereitstellung horizontal skalieren. Der Leiter passt den Cluster automatisch an, indem er Aufgaben hinzufügt oder entfernt, um einen gewünschten Zustand beizubehalten.
Ein Knoten ist eine einzelne Instanz der Docker-Engine, die am Swarm teilnimmt. Sie können einen oder mehrere Knoten auf einem einzigen Linode ausführen. Der Swarm-Manager verwendet Ingress-Load-Balancing, um Dienste verfügbar zu machen, die dem Swarm zur Verfügung gestellt werden können. Docker Swarm kann auch:
- Überprüfen Sie den Zustand Ihrer Container.
- Starten Sie einen festen Satz von Containern aus einem einzigen Docker-Image.
- Skalieren Sie die Anzahl der Container nach oben oder unten (abhängig von der aktuellen Auslastung).
- Rollende Updates über Container hinweg durchführen.
- Stellen Sie Redundanz und Failover bereit.
- Container-Iterationen hinzufügen oder entfernen, wenn sich die Anforderungen ändern.
Nächste Schritte
Um Docker weiter zu erkunden, besuchen Sie unsere Docker-Schnellreferenz, unsere Anleitung zum Bereitstellen eines Node.js-Webservers oder die Linode Anleitung zum Installieren von Docker und Bereitstellen eines LAMP-Stacks.
Weitere Informationen
Weitere Informationen zu diesem Thema finden Sie in den folgenden Ressourcen. Obwohl diese in der Hoffnung bereitgestellt werden, dass sie nützlich sind, beachten Sie bitte, dass wir nicht für die Genauigkeit oder Aktualität extern gehosteter Materialien garantieren können.
- Docker-Dokumentation
- Docker Probieren Sie es aus
- Docker-Hub