Docker ist eine Reihe von Platforms as a Service (PaaS)-Produkten, die Virtualisierung auf Betriebssystemebene nutzen, um Software in Paketen, sogenannten Containern, bereitzustellen. Container sind voneinander isoliert und bündeln ihre eigene Software, Bibliotheken und Konfigurationsdateien; Sie können über genau definierte Kanäle miteinander kommunizieren. Alle Container werden von einem einzigen Betriebssystemkernel ausgeführt und verbrauchen daher weniger Ressourcen als eine virtuelle Maschine.
Inhaltsverzeichnis
- Was ist Docker?
- Warum ist Docker beliebt?
- Was ist eine Docker-Datei?
- Was ist Docker-Architektur und wie funktioniert Docker?
- Was ist Docker Image?
- Was ist Docker-Container?
- Was ist Docker Hub?
- Was ist Docker Compose?
- Wie lade ich Docker Desktop herunter?
- Docker-Befehle
- Docker-Engine
- Warum Docker verwenden?
- Was ist Docker für AWS?
- Unterschied zwischen Docker-Containern und virtuellen Maschinen
- Installieren Sie Docker auf Ubuntu
- Beispielbeispiel: Containerisieren einer Anwendung mit Docker
- Beispielbeispiel zum Übertragen eines Bildes an Docker Hub
- Rufen Sie das Image vom Docker Hub ab und führen Sie es aus
- Vorteile von Docker
- Alternativen von Docker
- Docker-Sicherheit
Was ist Docker?
Docker ist eine Open-Source-Software Containerisierung Plattform, mit der Sie Ihre Anwendung und alle ihre Abhängigkeiten in eine standardisierte Einheit namens Container packen können. Container haben ein geringes Gewicht, was sie tragbar macht, und sie sind von der zugrunde liegenden Infrastruktur und von den anderen Containern isoliert. Sie können das ausführen Docker-Bild Als ein Docker-Container in jeder Maschine, auf der Docker installiert ist, ohne davon abhängig zu sein Betriebssystem.
Warum ist Docker beliebt?
Docker erlangte seine Popularität aufgrund seines Einflusses auf die Softwareentwicklung und -bereitstellung. Im Folgenden sind einige der Hauptgründe für die Popularität von Docker aufgeführt:
- Portabilität: Docker erleichtert den Entwicklern das Packen ihrer Anwendungen mit allen Abhängigkeiten in einen einzigen, leichten Container. Es ermöglicht die Sicherstellung einer konsistenten Leistung in den verschiedenen Computerumgebungen.
- Reproduzierbarkeit: Durch die Kapselung der Anwendungen mit ihren Abhängigkeiten in einem Container wird sichergestellt, dass die Software-Setups in den Entwicklungs-, Test- und Produktionsumgebungen konsistent bleiben.
- Effizienz: Docker optimiert durch seine Container-basierte Architektur die Ressourcennutzung. Es ermöglicht den Entwicklern, mehrere isolierte Anwendungen auf einem einzigen Hostsystem auszuführen.
- Skalierbarkeit: Die Skalierbarkeitsfunktionen von Docker erleichterten den Entwicklern die Handhabung ihrer Anwendungen bei steigenden Arbeitslasten.
Was ist eine Docker-Datei?
Der Docker-Datei verwendet DSL (Domain Specific Language) und enthält Anweisungen zum Generieren eines Docker-Images. Dockerfile definiert die Prozesse, um schnell ein Image zu erstellen. Beim Erstellen Ihrer Anwendung sollten Sie eine Docker-Datei erstellen, da die Docker-Daemon führt alle Anweisungen von oben nach unten aus.
(Der Docker-Daemon, oft einfach als Docker bezeichnet, ist ein Hintergrunddienst, der Docker-Container auf einem System verwaltet.)
- Es handelt sich um ein Textdokument, das notwendige Befehle enthält, die bei der Ausführung beim Zusammenstellen eines Docker-Images helfen.
- Das Docker-Image wird mithilfe einer Docker-Datei erstellt.

Weitere Informationen zur Docker-Datei finden Sie im Docker – Konzept von Dockerfile .
Was ist Docker-Architektur und wie funktioniert Docker?
Docker nutzt eine Client-Server-Architektur. Der Docker-Client kommuniziert mit dem Docker-Daemon, der beim Erstellen, Ausführen und Verteilen der Docker-Container hilft. Der Docker-Client läuft mit dem Daemon auf demselben System oder wir können den Docker-Client remote mit dem Docker-Daemon verbinden. Mit Hilfe der REST-API über einen UNIX-Socket oder ein Netzwerk interagieren der Docker-Client und der Daemon miteinander. Weitere Informationen zur Funktionsweise von Docker finden Sie unter Architektur von Docker .
Was ist Docker Image?
Es handelt sich um eine Datei, die aus mehreren Ebenen besteht und zum Ausführen von Code in einem Docker-Container verwendet wird. Dabei handelt es sich um eine Reihe von Anweisungen zum Erstellen von Docker-Containern. Docker Image ist ein ausführbares Softwarepaket, das alles enthält, was zum Ausführen einer Anwendung erforderlich ist. Dieses Bild informiert darüber, wie ein Container instanziiert werden soll, und bestimmt, welche Softwarekomponenten wie ausgeführt werden. Docker Container ist eine virtuelle Umgebung, die Anwendungscode mit allen zum Ausführen der Anwendung erforderlichen Abhängigkeiten bündelt. Die Anwendung läuft schnell und zuverlässig von einer Computerumgebung zur anderen.
Was ist Docker-Container?
Der Docker-Container ist eine Laufzeitinstanz eines Images. Ermöglicht Entwicklern das Verpacken von Anwendungen mit allen benötigten Teilen wie Bibliotheken und anderen Abhängigkeiten. Docker-Container sind Laufzeitinstanzen von Docker-Images. Container enthalten das gesamte für eine Anwendung erforderliche Kit, sodass die Anwendung isoliert ausgeführt werden kann. Zum Beispiel: Angenommen, es gibt ein Image von Ubuntu OS mit NGINX SERVER, wenn dieses Image mit dem Docker-Run-Befehl ausgeführt wird, dann wird ein Container erstellt und NGINX SERVER wird unter Ubuntu OS ausgeführt.
Was ist Docker Hub?
Docker Hub ist ein Repository-Dienst und ein cloudbasierter Dienst, bei dem Benutzer ihre Docker-Container-Images übertragen und die Docker-Container-Images auch jederzeit und überall über das Internet vom Docker Hub abrufen. Im Allgemeinen erleichtert es das Auffinden und Wiederverwenden von Bildern. Es bietet Funktionen wie die Möglichkeit, Ihre Images als private oder öffentliche Registry zu übertragen, wo Sie Docker-Images speichern und freigeben können.
Das DevOps-Team nutzt hauptsächlich den Docker Hub. Es ist ein Open-Source-Tool und für alle Betriebssysteme frei verfügbar. Es ist wie ein Speicher, bei dem wir die Bilder speichern und bei Bedarf abrufen. Wenn eine Person Bilder vom Docker Hub pushen/ziehen möchte, muss sie über Grundkenntnisse von Docker verfügen. Lassen Sie uns die Anforderungen des Docker-Tools besprechen.
Was ist Docker Compose?
Docker Compose führt eine YAML-basierte Multi-Container-Anwendung aus. Die YAML-Datei enthält alle Konfigurationen, die zum Bereitstellen von Containern erforderlich sind Docker Compose , das integriert ist mit Docker-Schwarm und enthält Anweisungen zum Erstellen und Bereitstellen von Containern. Mit Docker Compose ist jeder Container so aufgebaut, dass er auf einem einzelnen Host ausgeführt wird.
Wie lade ich Docker Desktop herunter?
Docker Desktop bietet eine grafische Benutzeroberfläche für die Arbeit mit Docker-Containern, Docker-Images und Docker-Netzwerken. Der Docker-Desktop bietet eine separate Umgebung, die Docker Engine, Docker CLI, Docker Compose enthält. Kubernetes, und andere Tools, die zum Erstellen, Versenden und Ausführen der Anwendungen in Form von Containern erforderlich sind, was sie benutzerfreundlicher macht. Weitere Informationen zur Installation von Docker Desktop finden Sie unter Docker Desktop-Beispielbild.
Docker-Befehle
Durch die Einführung der wesentlichen Docker-Befehle wurde Docker zu einer leistungsstarken Software zur Optimierung des Containerverwaltungsprozesses. Es trägt dazu bei, nahtlose Entwicklungs- und Bereitstellungsabläufe sicherzustellen. Im Folgenden sind einige Docker-Befehle aufgeführt, die häufig verwendet werden:
- Docker-Lauf: Es wird zum Starten der Container aus Bildern verwendet, wobei die Laufzeitoptionen und -befehle angegeben werden.
- Docker-Pull: Es ruft die Container-Images aus der Container-Registrierung wie Docker Hub auf den lokalen Computer ab.
- Docker ps : Es hilft bei der Anzeige der laufenden Container zusammen mit ihren wichtigen Informationen wie Container-ID, verwendetem Bild und Status.
- Docker-Stopp : Es hilft dabei, die laufenden Container anzuhalten und die darin enthaltenen Prozesse ordnungsgemäß herunterzufahren.
- Docker-Start: Es hilft dabei, die gestoppten Container neu zu starten und ihren Betrieb im vorherigen Zustand fortzusetzen.
- Docker-Anmeldung: Es hilft, sich bei der Docker-Registrierung anzumelden und so den Zugriff auf private Repositorys zu ermöglichen.
Weitere Informationen zu den Docker-Befehlen finden Sie unter Docker – Befehlsbefehle .
Docker-Engine
Die Software, die die Container hostet, heißt Docker Engine. Docker Engine ist eine Client-Server-basierte Anwendung. Die Docker-Engine besteht aus drei Hauptkomponenten:
- Server: Es ist für die Erstellung und Verwaltung von Docker-Images, Containern, Netzwerken und Volumes auf dem Docker verantwortlich. Es wird als Daemon-Prozess bezeichnet.
- REST-API : Es legt fest, wie die Anwendungen mit dem Server interagieren können, und weist ihn an, was zu tun ist.
- Klient: Der Client ist eine Docker-Befehlszeilenschnittstelle (CLI), die es uns ermöglicht, mithilfe der Docker-Befehle mit Docker zu interagieren.
Warum Docker verwenden?
Docker kann zum Packen der Anwendung und ihrer Abhängigkeiten verwendet werden, wodurch der Code leichter und einfacher schneller und zuverlässiger versendet werden kann. Docker macht es sehr einfach, die Anwendung in der Produktionsumgebung auszuführen. Der Docker-Container kann plattformunabhängig sein, wenn die Docker-Engine auf der Maschine installiert ist.
- Ressourceneffizienz : Docker hilft bei der Maximierung der Ressourcennutzung, indem mehrere Container auf einem einzigen Host ausgeführt werden. Es trägt dazu bei, die Infrastrukturkosten zu senken und die Effizienz zu verbessern.
- Versionskontrolle: Es vereinfacht die Versionierung der Anwendungen und ihrer Abhängigkeiten, sorgt für Konsistenz und erleichtert die Zusammenarbeit zwischen den Teams.
- Microservices-Agilität: Es ermöglicht die Einführung einer Microservices-Architektur und fördert die Skalierbarkeit, Flexibilität und Fehlerisolierung der agilen Anwendungsentwicklung.
Was ist Docker für AWS?
Docker ist das leistungsstärkste Tool zum Ausführen der Anwendung in Form von Containern. Docker-Container sind leicht und können auf jedem Betriebssystem ausgeführt werden.
AWS stellt den Amazon Elastic Container Service bereit ( Amazon ECS ) handelt es sich um einen vollständig verwalteten Containerdienst, mit dem Sie die Docker-Container bereitstellen, skalieren und verwalten können. Amazon ECS ist hinsichtlich der Leistung die zuverlässigste Plattform und kann auch in andere AWS-Dienste wie Lastausgleich, Serviceerkennung und Überwachung des Containerzustands integriert werden. Um mehr darüber zu erfahren Amazon Elastic Container Service (Amazon ECS) .
Unterschied zwischen Docker-Containern und virtuellen Maschinen
Im Folgenden sind die Unterschiede zwischen Docker-Containern und virtuellen Maschinen aufgeführt:
Docker-Container | Virtuelle Maschinen |
---|---|
Docker-Container enthalten Binärdateien, Bibliotheken und Konfigurationsdateien sowie die Anwendung selbst. | Virtuelle Maschinen (VMs) laufen auf Hypervisoren, die es ermöglichen, mehrere virtuelle Maschinen auf einer einzigen Maschine zusammen mit ihrem eigenen Betriebssystem auszuführen. |
Sie enthalten nicht für jeden Container ein Gastbetriebssystem und verlassen sich auf den zugrunde liegenden Betriebssystemkernel, wodurch die Container leichtgewichtig werden. | Jede VM verfügt über eine eigene Kopie eines Betriebssystems zusammen mit der Anwendung und den erforderlichen Binärdateien, wodurch sie deutlich größer wird und mehr Ressourcen benötigt. |
Container teilen Ressourcen mit anderen Containern im selben Host-Betriebssystem und bieten Prozessisolation auf Betriebssystemebene. | Sie bieten eine Prozessisolierung auf Hardwareebene und starten langsam. |
Installieren Sie Docker auf Ubuntu
Die folgenden Schritte führen Sie durch die Installation von Docker auf Ubuntu:
Schritt 1: Entfernen Sie die alte Version von Docker
- Führen Sie den folgenden Befehl aus, um die alte versionierte Docker-Software zu entfernen:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>
Schritt 2: Docker Engine installieren
- Der folgende Befehl wird für die Installation der Docker-Engine verwendet:
$ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo 'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable' | sudo tee /etc/apt/sources.list.d/docker.list>/dev/null $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin $ sudo groupadd docker $ sudo usermod -aG docker $USER>
Schritt 3: Überprüfen Sie die Docker-Installation
- Überprüfen Sie, ob Docker erfolgreich auf Ihrem System installiert wurde, indem Sie versuchen, einen Container mit dem folgenden Befehl auszuführen:
$ sudo docker run hello-world>
Weitere Einzelheiten zur Installation von Docker auf Ubuntu finden Sie hier – Artikel
Beispielbeispiel: Containerisieren einer Anwendung mit Docker
Die folgenden Schritte führen zur Containerisierung der Anwendung mit Docker:
Schritt 1: Dokcerfile und Python-Anwendung erstellen
- Erstellen Sie einen Ordner mit zwei Dateien (Dockerfile und main.py-Datei).
Schritt 2: Python-Code entwickeln
- Bearbeiten Sie main.py mit dem folgenden Code, oder versuchen Sie, Ihren eigenen Python-Code zu entwickeln.
#!/usr/bin/env python3 print('Docker and GFG rock!')>
Schritt 3: Entwickeln Sie eine Docker-Datei
- Bearbeiten Sie die Docker-Datei mit den folgenden Anweisungen zum Entwickeln der Docker-Datei:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>
Schritt 4: Erstellen Sie ein Docker-Image
- Nachdem Sie die Datei „main.py“ und die Docker-Datei erstellt und bearbeitet haben, erstellen Sie Ihr Image, das Ihre Anwendung enthält, indem Sie den folgenden Befehl ausführen:
$ sudo docker build -t python-test .>
- Mit der Option „-t“ können Sie den Namen Ihres Bildes definieren. „python-test“ ist der Name, den wir für das Bild gewählt haben.
Schritt 5: Docker Container ausführen
- Sobald das Bild erstellt ist, kann Ihr Code gestartet werden.
$ sudo docker run python-test>
Weitere Informationen zur Containerisierung Ihrer Anwendung finden Sie hier: Artikel
Beispielbeispiel zum Übertragen eines Bildes an Docker Hub
Die folgenden Schritte führen zum Übertragen eines Images an den Dockerhub:
Schritt 1: Erstellen Sie ein Konto auf Docker Hub oder verwenden Sie ein bestehendes, falls Sie bereits eines haben.
Schritt 2: Klicken Sie auf die Schaltfläche „Repository erstellen“, geben Sie den Namen der Datei ein und klicken Sie auf „Erstellen“.
Schritt 3: Jetzt markieren wir unser Image und übertragen es in das Docker Hub-Repository, das wir gerade erstellt haben.
- Führen Sie nun den folgenden Befehl aus, um Docker-Images aufzulisten:
$ docker images>
- Das Obige wird uns dieses Ergebnis liefern
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
- Die Bild-ID wird zum Markieren des Bildes verwendet. Die Syntax zum Markieren des Bildes lautet:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>
Schritt 4: Bild in das Docker Hub-Repository übertragen
$ docker push afrozchakure/python-test>
Weitere Informationen zum Veröffentlichen der Bilder auf Dockerhub finden Sie hier – Artikel
Rufen Sie das Image vom Docker Hub ab und führen Sie es aus
1. Um alle Versionen eines bestimmten Bildes von unserem lokalen System zu entfernen, verwenden wir die Bild-ID dafür.
$ docker rmi -f af939ee31fdc>
2. Führen Sie nun das Image aus. Es wird vom Docker-Hub abgerufen, wenn es auf Ihrem lokalen Computer nicht vorhanden ist.
$ docker run afrozchakure/python-test>
Vorteile von Docker
Im Folgenden sind einige der Vorteile von Docker aufgeführt:
- Portabilität: Docker ermöglicht die Erstellung leichter tragbarer Container, die unabhängig von den zugrunde liegenden Betriebssystemen auf keinem Computer ausgeführt werden können.
- Isolierung: Docker über Container bietet ein hohes Maß an Isolation und ermöglicht es den Anwendungen, unabhängig voneinander ausgeführt zu werden, wodurch die Probleme behoben werden, die ein Container nicht auf andere auswirkt.
- Reproduzierbarkeit: Mit können Docker-Entwickler ihre Anwendungen und ihre Abhängigkeiten ganz einfach in wiederverwendbare Images packen. Es ermöglicht konsistente und reproduzierbare Builds in den Entwicklungs-, Test- und Produktionsumgebungen.
- DevOps-Integration : Es fördert die Zusammenarbeit und Automatisierung im gesamten Softwareentwicklungslebenszyklus bei der Bewältigung der steigenden Arbeitsbelastung.
Alternativen von Docker
Im Folgenden sind die Alternativen von Docker aufgeführt:
- Gedämpft : Bietet eine Docker-kompatible Container-Engine mit Schwerpunkt auf Sicherheit und Kompatibilität, ideal für Umgebungen, in denen Docker nicht bevorzugt oder verfügbar ist.
- rkt: Eine von CoreOS entwickelte, leichte Container-Laufzeitumgebung, die auf Einfachheit, Sicherheit und Zusammensetzbarkeit ausgelegt ist und eine Alternative zur Container-Laufzeitumgebung von Docker bietet.
- LXC (Linux-Container): Bietet Virtualisierung auf Betriebssystemebene für die Ausführung mehrerer isolierter Linux-Systeme (Container) auf einem einzigen Host und bietet für bestimmte Anwendungsfälle eine leichte Alternative zu Docker.
- Containerd: Eine von Docker, Inc. entwickelte Core-Container-Laufzeit nach Industriestandard, die eine minimale und stabile Plattform zum Erstellen von Containeranwendungen bietet und oft als untergeordnete Alternative zu Docker für fortschrittlichere Container-Orchestrierungssysteme wie Kubernetes verwendet wird.
Docker-Sicherheit
Im Folgenden finden Sie einige Erkenntnisse zur Docker-Sicherheit:
- Isolierung : Docker-Container bieten eine starke Isolation, um sicherzustellen, dass die Anwendungen ausgeführt und verarbeitet werden.
- Unveränderliche Infrastruktur : Es fördert die Nutzung einer unveränderlichen Infrastruktur, bei der Container aus den unveränderlichen Bildern erstellt werden, die einer Versionskontrolle unterliegen.
- Ressourcenbeschränkungen: Es ermöglicht Ihnen, die Ressourcenbeschränkungen für Container wie CPU- und Speichergrenzen zu definieren.
- Sicherheitsscan: Es bietet die integrierten Sicherheitsscan-Tools, mit denen Sie die Container-Images vor der Bereitstellung auf bekannte Schwachstellen und Malware scannen können.
Abschluss
Sie haben also die Grundlagen von Docker kennengelernt, den Unterschied zwischen virtuellen Maschinen und Docker-Containern sowie einige gängige Terminologien in Docker. Außerdem haben wir die Installation von Docker auf unseren Systemen durchgeführt. Wir haben eine Anwendung mit Docker erstellt und unser Image an Docker Hub übertragen. Schließlich haben wir gelernt, wie wir ein bestimmtes Image von unserem lokalen System entfernen und das Image später vom Docker Hub abrufen können, wenn es lokal nicht vorhanden ist.
Docker – FAQs
Was ist Docker Hub kurz gesagt?
Docker Hub ist ein öffentliches Register, in dem Benutzer/Entwickler von ihnen erstellte Systemabbilder speichern und teilen können, sodass sie problemlos auf Abbilder zugreifen und diese für andere Softwareentwickler wiederverwenden können.
np.log
Was wird benötigt, um Docker Hub zu nutzen?
Um Docker Hub nutzen zu können, muss der Benutzer über ein Konto auf der Docker Hub-Plattform verfügen. Wenn Sie noch kein Konto bei Docker Hub haben, können Sie eines erstellen, indem Sie sich anmelden. Sobald Sie ein Konto bei Docker haben, können Sie Vorgänge wie das Pushen und Ziehen von Bildern zum und vom Docker Hub ausführen.
Was sind Docker-Logs?
Der Docker-Daemon und die Docker-Container generieren die Docker-Protokolle in Form von Textnachrichten, die Ihnen bei der weiteren Fehlerbehebung, der Überwachung der Leistung Ihrer Anwendungen und der Erfassung von Informationen über den Status Ihrer Docker-Umgebung helfen.
Was ist Docker Build?
Docker Build ist ein Befehl, der zum Erstellen des Docker-Images mithilfe der Docker-Datei verwendet wird.
Was ist Docker Ubuntu?
Docker Ubuntu ist die Bezeichnung für die Nutzung des Docker-Dienstes mit Ubuntu-basierten Betriebssystemen. Der Betrieb von Docker eignet sich am besten für die beliebte Linux-Distribution Ubuntu.