Docker-Tutorial für Anfänger: Grundlagen, Architektur, Container
Was ist Docker?
Docker ist eine Softwareentwicklungsplattform für die Virtualisierung mit mehreren Operating-Systeme, die auf demselben Host laufen. Es hilft, Infrastruktur und Anwendungen zu trennen, um Software schnell bereitzustellen. Im Gegensatz zu Hypervisoren, die zum Erstellen von VMs (virtuellen Maschinen) verwendet werden, erfolgt die Virtualisierung in Docker auf Systemebene, auch Docker-Container genannt.
Wie Sie den Unterschied im Bild unten sehen können, werden Docker-Container auf dem Host ausgeführt Operationssystem. Dies hilft Ihnen, die Effizienz und Sicherheit zu verbessern. Darüber hinaus können wir mehr Container auf derselben Infrastruktur ausführen als virtuelle Maschinen, da Container weniger Ressourcen verbrauchen.

Im Gegensatz zu den VMs, die mit der Hardware des Hosts kommunizieren können (z. B. Ethernet-Adapter zum Erstellen weiterer virtueller Adapter), werden Docker-Container in einer isolierten Umgebung auf dem Betriebssystem des Hosts ausgeführt. Auch wenn Ihr Host läuft Windows OS können Sie mithilfe von Linux-Images in Containern ausführen lassen Hyper-V, das automatisch eine kleine VM erstellt, um das Basis-Image des Systems zu virtualisieren, in diesem Fall Linux.
Warum Docker verwenden?
- Docker ist eine Computersoftware, die zur Virtualisierung verwendet wird, um mehrere zu haben Operating-Systeme läuft auf demselben Host
- Docker ist eine Client-Server-Anwendung, was bedeutet, dass wir Clients haben, die eine Weiterleitung an den Server durchführen
- Docker-Images sind der „Quellcode“ für unsere Container; Wir nutzen sie zum Bauen
- Dockerfile verfügt über zwei Arten von Registern: 1.) öffentliche und 2) private Register
- Container sind die Organisationseinheiten des Docker-Volumes. Vereinfacht ausgedrückt ist ein Bild eine Vorlage und ein Container eine Kopie dieser Vorlage. Sie können mehrere Container (Kopien) desselben Bildes haben.
Docker Architektur
Lassen Sie uns nun in diesem Docker-Container-Tutorial über die Docker-Hauptkomponenten im Docker sprechen ArchiStruktur:
Docker-Engine
Docker ist eine Client-Server-Anwendung, was bedeutet, dass wir Clients haben, die eine Weiterleitung an den Server durchführen. Der Docker-Daemon mit dem Namen „dockerd“ ist also die Docker-Engine, die den Server darstellt. Der Docker-Daemon und die Clients können auf demselben oder einem Remote-Host ausgeführt werden und kommunizieren über die Befehlszeilen-Client-Binärdatei sowie über eine vollständige REST-konforme API um mit dem Daemon zu interagieren: Docker.
Docker-Images
Docker-Images sind der „Quellcode“ für unsere Container; Wir nutzen sie zum Bau von Containern. Sie können Software vorinstallieren lassen, was die Bereitstellung beschleunigt. Sie sind portabel und wir können vorhandene Bilder verwenden oder unsere eigenen erstellen.
Docker-Register
Docker speichert die von uns erstellten Bilder in Registern. Es gibt öffentliche und private Register. Das Docker-Unternehmen hat ein öffentliches Register namens Docker-Hub, wo Sie Bilder auch privat speichern können. Docker Hub verfügt über Millionen von Bildern, die Sie jetzt verwenden können.
Docker Container
Container sind die Organisationseinheiten und eines der Grundkonzepte von Docker. Wenn wir ein Image erstellen und mit der Ausführung beginnen; Wir laufen in einem Container. Die Container-Analogie wird aufgrund der Portabilität der Software verwendet, die in unserem Container ausgeführt wird. Wir können es bewegen, also die Software „versenden“, modifizieren, verwalten, erstellen oder entfernen, zerstören, so wie es Frachtschiffe mit echten Containern tun können.
Vereinfacht ausgedrückt ist ein Bild eine Vorlage und ein Container eine Kopie dieser Vorlage. Sie können mehrere Container (Kopien) desselben Bildes haben.
Unten sehen Sie ein Bild, das die Interaktion zwischen den verschiedenen Komponenten und die Funktionsweise der Docker-Containertechnologie perfekt darstellt.
Wir haben mehrere Docker-Befehle: Docker Pull, Docker Run … Wir werden später mehr darüber sprechen.
So installieren Sie Docker unter Linux/Ubuntu
Nachfolgend finden Sie einen schrittweisen Docker-Installationsprozess unter Linux/Ubuntu:
Schritt 1) Um Docker zu installieren, müssen wir die DEB-Pakete des Docker-Teams verwenden.
Dafür gibt es einige Voraussetzungen Ubuntu Pakete sind erforderlich.
Verwenden Sie zum Installieren den folgenden Befehl Ubuntu Pakete
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*Das Zeichen „\“ ist nicht erforderlich, es wird für die neue Zeile verwendet. Wenn Sie möchten, können Sie den Befehl auch ohne die Verwendung von „\“ in nur einer Zeile schreiben.
Schritt 2) Fügen Sie den offiziellen Docker-GPG-Schlüssel mit dem Fingerabdruck hinzu.
Verwenden Sie den folgenden Docker-Befehl, um den GPG-Schlüssel einzugeben
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Schritt 3) Als nächstes fügen Sie das Docker APT-Repository hinzu.
Verwenden Sie den folgenden Docker-Befehl, um das Repository hinzuzufügen
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Möglicherweise werden Sie aufgefordert, zu bestätigen, dass Sie das Repository hinzufügen und den GPG-Schlüssel automatisch zu Ihrem Host hinzufügen möchten.
Der Befehl lsb_release sollte die Datei füllen Ubuntu Distributionsversion Ihres Hosts.
Schritt 4) Nachdem Sie den GPG-Schlüssel hinzugefügt haben,
Aktualisieren Sie die APT-Quellen mit dem folgenden Docker-Befehl
$ sudo apt-get update
Wir können jetzt das Docker-Paket selbst installieren.
Schritt 5) Sobald die APT-Quellen aktualisiert sind,
Beginnen Sie mit der Installation der Docker-Pakete Ubuntu Verwenden Sie den folgenden Docker-Befehl
$ sudo apt-get install docker-ce
Der oben angegebene Befehl installiert Docker und andere zusätzlich erforderliche Pakete. Vor Docker 1.8.0 lautete der Paketname lxc-docker und zwischen Docker 1.8 und 1.13 lautete der Paketname docker-engine.
HINWEIS: Docker für Windows erfordert Windows 10 Pro oder Enterprise Version 14393, oder Windows Server 2016 RTM zum Ausführen
So verwenden Sie Docker mit grundlegenden Docker-Befehlen
So verwenden Sie Docker mit grundlegenden Docker-Befehlen:
Der grundlegendste Befehl, den wir nach der Installation von Docker ausführen müssen, ist, wie bereits erwähnt, $ docker info.
$ sudo docker info
Sie sollten das ähnliche oder folgende Ergebnis erhalten
Wie wir im obigen Docker-Beispiel sehen können, haben wir Informationen über Docker-Container, wie viele laufen, pausieren oder gestoppt und wie viele Bilder wir heruntergeladen haben. Lassen Sie uns also unser erstes Bild in diesem Docker-Befehls-Tutorial erstellen.
$ sudo docker pull alpine
Mit diesem Befehl weisen wir Docker an, das Image Alpine herunterzuladen und es aus der öffentlichen Registrierung abzurufen, der neuesten Version, die standardmäßig eingestellt ist.
*alpine ist ein minimales Docker-Image auf Basis von Alpine Linux mit vollständigem Paketindex und nur 5 MB Größe.
Wenn wir das Image als Container ausführen möchten, verwenden wir in diesem Docker-Tutorial-Handbuch den folgenden Befehl.
$ sudo docker run -i -t alpine /bin/bash
Wenn wir den Befehl ausführen, werden wir direkt zum Alpine-Terminal weitergeleitet. Das Flag -i hält STDIN im Container offen, auch wenn Sie nicht damit verbunden sind. Diese persistente Standardeingabe ist die Hälfte dessen, was Sie für eine interaktive Shell benötigen. Das Flag -t ist die andere Hälfte und weist Docker an, dem Container ein Pseudo-TTY zuzuweisen. Dies bietet uns eine interaktive Shell im neuen Container. Wir verlassen den Container mit einem einfachen Exit-Befehl.
In diesem Docker-Grundlagen-Tutorial können wir nun versuchen, eine auszuführen Ubuntu Bild.
$ sudo docker run -it ubuntu /bin/bash
Sie können feststellen, dass Docker lokal nach dem Bild sucht. Wenn es nicht vorhanden ist, wird das Bild automatisch aus der Bildbibliothek abgerufen, und wieder wird eine interaktive Shell ausgeführt. Wir können die Container auch benennen, während wir sie ausführen.
$ sudo docker run –-name our_container -it ubuntu /bin/bash
und wir gehen wieder raus.
Wir können den zuvor erstellten Container auch ohne interaktive Shell ausführen.
$ sudo docker start container_name
Und stoppen Sie das Schreiben des Containers durch Docker. Stoppen Sie den Containernamen
$ sudo docker stop container_name
Wenn wir alle laufenden Container sehen möchten, führen wir sie einfach aus
$ docker ps
Und für alle Container fügen wir am Ende desselben Befehls „-a“ hinzu, wie diesen Docker ps -a.
Dieser Befehl zeigt die Container-ID, welches Image zum Zeitpunkt der Erstellung verwendet wird, den Ausführungsstatus, verfügbare Ports und einen zufällig generierten Namen für den Container zur einfacheren Verwaltung an.
Wenn wir Container ausführen, möchten wir auch wissen, wie viele Ressourcen sie verbrauchen. Zu diesem Zweck können wir den Befehl verwenden.
$ docker stats
Sie können auch sehen, welche Bilder wir lokal heruntergeladen haben und Informationen dazu.
$ sudo docker images
Der Befehl im obigen Docker-Beispiel zeigt das Docker-Image mit einem Tag an, das unsere Image-Version, eine eindeutige Image-ID, den Erstellungszeitpunkt und die Image-Größe anzeigt.
Was ist Virtualisierung?
Früher war der Prozess zur Bereitstellung eines Dienstes langwierig und mühsam. Zuerst schrieben die Entwickler Code, dann stellte das Betriebsteam ihn auf Bare-Metal-Maschinen bereit und musste nach Bibliotheksversionen, Patches und Sprachcompilern Ausschau halten, damit der Code funktionierte. Wenn Bugs oder Fehler auftraten, begann der Prozess von vorne, die Entwickler behoben sie und dann war das Betriebsteam wieder zur Stelle, um den Code bereitzustellen.
Mit der Entwicklung von Hypervisoren gab es eine Verbesserung. Hypervisoren haben mehrere Virtuelle Maschinen oder VMs auf demselben Host, die möglicherweise ausgeführt oder ausgeschaltet sind. VMs verkürzten die Wartezeit für die Bereitstellung von Code und die Fehlerbehebung erheblich, aber der eigentliche Game Changer waren Docker-Container.
Wichtige Docker-Befehle
Nachfolgend sind die wichtigen Docker-Befehle aufgeführt:
Befehl | Beschreibung |
---|---|
Dockerinfo | Informationskommando |
Docker ziehen | Laden Sie ein Bild herunter |
Docker run -i -t Bildname /bin/bash | Image als Container ausführen |
Docker startet unseren_Container | Container starten |
Docker stoppt Containername | Behälter stoppen |
Docker ps | Liste aller laufenden Container |
Docker-Statistiken | Containerinformationen |
Andockbilder | Liste der heruntergeladenen Bilder |
Docker-Bereinigung | Töte alle laufenden Container. |
Lesen Sie auch Fragen und Antworten zum Docker-Vorstellungsgespräch sowohl für Berufseinsteiger als auch für erfahrene Profis.
Zusammenfassung
- Docker ist eine Softwareentwicklungsplattform für die Virtualisierung mit mehreren Operating-Systeme, die auf demselben Host laufen. Es hilft, Infrastruktur und Anwendungen zu trennen, um Software schnell bereitzustellen.
- Docker ArchiStruktur: Docker-Engine, Docker-Images, Docker-Register, Docker-Container.
- Docker-Engine: Docker ist eine Client-Server-Anwendung, was bedeutet, dass wir Clients haben, die eine Weiterleitung an den Server durchführen. Der Docker-Daemon mit dem Namen „dockerd“ ist also die Docker-Engine, die den Server darstellt.
- Docker-Bilder: Docker-Images sind der „Quellcode“ für unsere Container; Wir nutzen sie zum Bau von Containern. Sie können Software vorinstallieren lassen, was die Bereitstellung beschleunigt. Sie sind portabel und wir können vorhandene Bilder verwenden oder unsere eigenen erstellen.
- Docker-Register: Docker speichert die von uns erstellten Bilder in Registern. Es gibt öffentliche und private Register. Das Unternehmen Docker verfügt über ein öffentliches Register namens Docker Hub, in dem Sie Bilder auch privat speichern können. Docker Hub verfügt über Millionen von Bildern, die Sie jetzt verwenden können.
- Docker-Container: Container sind die Organisationseinheiten und eines der Grundkonzepte von Docker. Wenn wir ein Image erstellen und mit der Ausführung beginnen; Wir laufen in einem Container. Die Container-Analogie wird aufgrund der Portabilität der Software verwendet, die in unserem Container ausgeführt wird.