Seit seiner Veröffentlichung im Jahr 2013 wird Docker intensiv beobachtet und man geht davon aus, dass es das Potenzial hat, die Softwarebranche zu verändern. Vielen Menschen ist jedoch nicht klar, was Docker ist, welche Probleme es löst und welche Vorteile es bietet. Heute erklären wir es ausführlich, damit Sie es verstehen. Außerdem bieten wir leicht verständliche Beispiele, um Ihnen beizubringen, wie Sie es für die tägliche Entwicklung und Bereitstellung von Microservices verwenden. 1. Einführung in Docker Docker ist eine Open-Source-Container-Engine, mit deren Hilfe Anwendungen schneller bereitgestellt werden können. Docker isoliert die Anwendungs- und Infrastrukturebenen und verwaltet die Infrastruktur wie ein Programm. Durch die Verwendung von Docker können Anwendungen schneller verpackt, getestet und bereitgestellt werden und der Zyklus vom Schreiben bis zum Bereitstellen und Ausführen von Code verkürzt werden. Die Vorteile von Docker sind folgende: 1. Vereinfachen Sie den Prozess Mit Docker können Entwickler ihre Anwendungen und abhängigen Pakete in einen portablen Container packen und diesen dann auf jeder gängigen Linux-Maschine veröffentlichen, um eine Virtualisierung zu erreichen. Docker hat die Art und Weise der Virtualisierung verändert und ermöglicht es Entwicklern, ihre eigenen Ergebnisse zur Verwaltung direkt in Docker einzufügen. Komfort und Geschwindigkeit sind bereits die größten Vorteile von Docker. Aufgaben, die früher Tage oder sogar Wochen dauerten, können heute mit Docker-Containern in Sekunden erledigt werden. 2. Vermeiden Sie die Angst vor der Wahl Wenn Sie Angst davor haben, Entscheidungen zu treffen, sind Sie ein erfahrener Patient. Docker hilft Ihnen beim Verpacken Ihrer Verflechtung! Beispielsweise enthalten Docker-Images die Betriebsumgebung und Konfiguration, sodass Docker die Bereitstellung mehrerer Anwendungsinstanzen vereinfachen kann. Beispielsweise können Webanwendungen, Backend-Anwendungen, Datenbankanwendungen, Big Data-Anwendungen wie Hadoop-Cluster, Nachrichtenwarteschlangen usw. alle zur Bereitstellung in ein Spiegelbild gepackt werden. 3. Geld sparen Einerseits bedeutet der Beginn des Cloud-Computing-Zeitalters, dass Entwickler nicht länger teure Hardware konfigurieren müssen, um Ergebnisse zu erzielen. Docker hat die Denkweise geändert, dass hohe Leistung ihren Preis haben muss. Durch die Kombination von Docker und Cloud kann der Cloud-Speicherplatz umfassender genutzt werden. Es löst nicht nur das Problem der Hardwareverwaltung, sondern verändert auch die Art der Virtualisierung. 2. Docker-Architektur Docker-Daemon Der Docker-Daemon ist ein Hintergrundprozess, der auf dem Hostcomputer (DOCKER-HOST) ausgeführt wird. Die Kommunikation kann über den Docker-Client erfolgen. Kunde Der Docker-Client ist die Benutzeroberfläche von Docker, die Benutzerbefehle und Konfigurationsflags akzeptieren und mit dem Docker-Daemon kommunizieren kann. In der Abbildung handelt es sich bei „Docker Build“ und anderen um Docker-bezogene Befehle. Bilder Ein Docker-Image ist eine schreibgeschützte Vorlage, die Anweisungen zum Erstellen eines Docker-Containers enthält. Es ist ein bisschen wie eine Systeminstallations-CD. Sie können die Systeminstallations-CD verwenden, um das System zu installieren. Ebenso können Sie das Docker-Image verwenden, um das Programm im Docker-Image auszuführen. Container Ein Container ist eine ausführbare Instanz eines Images. Die Beziehung zwischen Bildern und Containern ähnelt in gewisser Weise der Beziehung zwischen Klassen und Objekten in der objektorientierten Programmierung. Container können über Docker-API oder CLI-Befehle gestartet, gestoppt, verschoben und gelöscht werden. Registrierung Docker Registry ist ein Dienst zur zentralen Speicherung und Verteilung von Images. Nachdem Sie das Docker-Image erstellt haben, können Sie es auf dem aktuellen Host ausführen. Wenn Sie dieses Image jedoch auf anderen Computern ausführen möchten, müssen Sie es manuell kopieren. Derzeit können Sie Docker Registry verwenden, um das manuelle Kopieren von Bildern zu vermeiden. Ein Docker-Register kann mehrere Docker-Repositorys enthalten, jedes Repository kann mehrere Image-Tags enthalten und jedes Tag entspricht einem Docker-Image. Dies ähnelt etwas dem Warehouse von Maven. Wenn Docker Registry mit dem Warehouse von Maven verglichen wird, kann das Docker-Warehouse als Pfad eines JAR-Pakets und das Image-Tag als Versionsnummer des JAR-Pakets verstanden werden. 3. Docker-Installation Docker ist ein kommerzielles Open-Source-Produkt mit zwei Versionen: Community Edition (CE) und Enterprise Edition (EE). Die Enterprise-Version umfasst einige kostenpflichtige Dienste, die von einzelnen Entwicklern im Allgemeinen nicht genutzt werden. Die folgende Einführung gilt für die Community-Version. Informationen zur Installation von Docker CE finden Sie in der offiziellen Dokumentation. Nachfolgend sind die Installationsmethoden für verschiedene Betriebssysteme aufgeführt.
Hier nehmen wir CentOS als Beispiel: 1. Docker erfordert eine Kernelversion des CentOS-Systems, die höher als 3.10 ist. Überprüfen Sie die Voraussetzungen auf dieser Seite, um festzustellen, ob Ihre CentOS-Version Docker unterstützt. Überprüfen Sie Ihre aktuelle Kernelversion mit dem Befehl uname -r # uname -r 2. Melden Sie sich mit Root-Rechten bei CentOS an. Stellen Sie sicher, dass das Yum-Paket auf die neueste Version aktualisiert ist. # yum -y aktualisieren 3. Deinstallieren Sie die alte Version (falls die alte Version installiert wurde) # yum entferne Docker Docker-Common Docker-Selinux Docker-Engine 4. Installieren Sie die erforderlichen Softwarepakete. yum-util stellt die Funktion yum-config-manager bereit. Die anderen beiden sind Abhängigkeiten des Devicemapper-Treibers. # yum install -y yum-utils device-mapper-persistent-data lvm2 5. Yum-Quelle einrichten # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 6. Sie können alle Docker-Versionen in allen Repositorys anzeigen und eine bestimmte Version zur Installation auswählen # yum-Liste docker-ce --showduplicates | sort -r 7. Docker installieren # sudo yum install -y docker-ce #Da im Repo standardmäßig nur das stabile Repository aktiviert ist, wird hier die neuste stabile Version 18.03.1 installiert 8. Starten und beitreten des Bootvorgangs # systemctl starte Docker # systemctl Docker aktivieren 9. Überprüfen Sie, ob die Installation erfolgreich war (das Vorhandensein von Client- und Serviceteilen zeigt an, dass die Docker-Installation und der Start erfolgreich waren). # Docker-Version 10. Docker deinstallieren # yum -y Docker-Engine entfernen 4. Allgemeine Docker-Befehle (I) .Mirror-bezogene Befehle 1. Suche nach Bildern Mit dem Docker-Suchbefehl können Sie nach Images suchen, die im Docker Hub gespeichert sind (dies ist der offizielle von Docker bereitgestellte Ort zum Speichern aller Docker-Image-Software, ähnlich dem zentralen Lager von Maven). Nach der Ausführung dieses Befehls sucht Docker im Docker Hub nach Image-Repositorys, die das Schlüsselwort „Java“ enthalten. # Docker-Suche Java Die obige Liste enthält fünf Spalten mit folgenden Bedeutungen:
Hinweis: Bei der Verwendung von Docker zum Suchen oder Herunterladen von Bildern kann es zu einer Zeitüberschreitung kommen. Daher müssen wir einen inländischen Bildbeschleuniger für Docker konfigurieren. Wir können den Bildbeschleuniger von Alibaba Cloud verwenden, um uns bei Alibaba Cloud anzumelden (https://cr.console.aliyun.com/#/accelerator). Sie können die Spiegelbeschleunigungsadresse wie folgt sehen: # cd /etc/docker Überprüfen Sie, ob daemon.json vorhanden ist. Dies ist die Standardkonfigurationsdatei von Docker. Wenn nicht, erstellen Sie ein neues, wenn ja, ändern Sie es. # vim daemon.json { "Registrierungsspiegel": ["https://m9r2r2uj.mirror.aliyuncs.com"] } Speichern, beenden und den Docker-Dienst neu starten # Service-Docker neu starten 2. Laden Sie das Bild herunter Verwenden Sie den Befehl „docker pull“, um das Image aus der Docker-Registrierung herunterzuladen. Nach der Ausführung des Befehls lädt Docker die neueste Version des Java-Images aus dem Java-Repository im Docker Hub herunter. Wenn Sie eine bestimmte Version herunterladen möchten, fügen Sie nach „Java“ einen Doppelpunkt hinzu, um die Version anzugeben, zum Beispiel: docker pull java:8 # Docker Pull Java:8 3. Bilder auflisten Verwenden Sie den Befehl „Docker Images“, um die heruntergeladenen Images aufzulisten # Docker-Bilder Die obige Liste bedeutet Folgendes:
4. Löschen Sie das lokale Image Verwenden Sie den Befehl docker rmi, um das angegebene Image zu löschen # Docker RMI Java (II) Containerbezogene Befehle 1. Erstellen und starten Sie einen Container Verwenden Sie den folgenden Befehl „docker run <image name>“, um einen Container zu erstellen und zu starten. Dieser Befehl ist der am häufigsten verwendete Befehl und verfügt über viele Optionen. Einige häufig verwendete Optionen sind unten aufgeführt. # docker run -d -p 91:80 nginx Dadurch wird ein Nginx-Container gestartet. In diesem Beispiel werden docker run zwei Parameter mit den folgenden Bedeutungen hinzugefügt:
Besuchen Sie http://Docker-Host-IP:91/. Sie sehen die Hauptschnittstelle von nginx wie folgt: Es ist zu beachten, dass beim Erstellen eines Containers mit dem Befehl „Docker Run“ zunächst geprüft wird, ob das angegebene Image lokal vorhanden ist. Wenn das Image mit diesem Namen lokal nicht vorhanden ist, lädt Docker das Image automatisch vom Docker Hub herunter und startet einen Docker-Container. Der Befehl hat auch einen Netzwerkkonfigurationsparameter, wie unten gezeigt
2. Container auflisten Verwenden Sie den Befehl docker ps, um die laufenden Container aufzulisten # Docker PS Um alle Container (einschließlich der gestoppten) aufzulisten, verwenden Sie den Parameter -a. Die Liste enthält 7 Spalten, die Bedeutungen sind wie folgt
3. Stoppen Sie den Container Verwenden Sie den Befehl „Docker Stop <Container-ID>“, um den Container zu stoppen. # Docker-Stopp f0b1c8ab3633 f0b1c8ab3633 ist die Container-ID. Sie können auch Docker Stop verwenden, um den angegebenen Container zu stoppen. 4. Erzwingen Sie das Stoppen des Containers Sie können den Befehl docker kill <container id> verwenden, um ein SIGKILL-Signal zu senden und den Container zwangsweise zu stoppen. # Docker kill f0b1c8ab3633 5. Starten Sie einen gestoppten Container Verwenden Sie den Befehl „Docker Run“, um einen Container zu erstellen und zu starten. Für einen gestoppten Container können Sie den Befehl docker start <container id> verwenden, um ihn zu starten # Docker-Start f0b1c8ab3633 6. Alle Containerinformationen anzeigen Verwenden Sie den Befehl docker inspect <container id> # Docker-Inspektion f0b1c8ab3633 7. Containerprotokolle anzeigen Verwenden Sie den Befehl docker container logs <container id> # Docker-Container-Protokolle f0b1c8ab3633 8. Sehen Sie sich den Prozess im Container an Verwenden Sie den Befehl docker top <container id> # Docker-Top f0b1c8ab3633 9. Betreten Sie den Container Verwenden Sie den Befehl docker container exec -it <Container-ID> /bin/bash, um einen laufenden Docker-Container aufzurufen. Wenn der Parameter -it nicht verwendet wird, wenn der Befehl „Docker Run“ den Container ausführt, muss dieser Befehl zum Aufrufen des Containers verwendet werden. Sobald Sie sich im Container befinden, können Sie Befehle in der Shell des Containers ausführen. # Docker-Container exec -it f0b1c8ab3633 /bin/bash 10. Löschen Sie den Container Verwenden Sie den Befehl docker rm, um den angegebenen Container zu löschen # Docker rm f0b1c8ab3633 Mit diesem Befehl können nur gestoppte Container gelöscht werden. Um einen laufenden Container zu löschen, verwenden Sie den Parameter -f. (III) Erstellen Sie Ihr eigenes Docker-Image Erstellen Sie Ihr eigenes Docker-Image mit Dockerfile Dockerfile ist eine Textdatei, die mehrere Anweisungen enthält, die die Details zum Erstellen eines Images beschreiben. Schreiben wir zunächst das einfachste Dockerfile. Nehmen wir das im vorherigen Artikel heruntergeladene Nginx-Image als Beispiel und schreiben wir ein Dockerfile, um die Homepage des Nginx-Images zu ändern. 1. Erstellen Sie einen neuen Ordner /app, erstellen Sie eine neue Datei mit dem Namen Dockerfile im App-Verzeichnis und fügen Sie ihr den folgenden Inhalt hinzu: VON nginx #Laden Sie das Docker-Image von ngxin aus dem lokalen Image-Repository herunter. RUN echo 'Dies ist QingFeng Nginx!!!' > /usr/share/nginx/html/index.html #Ändern Sie den Homepage-Inhalt des Docker-Image von ngxin Das Docker-File ist sehr einfach und FORM und RUN sind beides Anweisungen des Docker-Files. Mit der FROM-Anweisung wird das Basisimage angegeben, und mit der RUN-Anweisung werden Befehle ausgeführt. 2. Führen Sie den folgenden Befehl im Pfad aus, in dem sich Dockerfile befindet, um unser eigenes ngxin-Image zu erstellen. Nach dem Erstellen können Sie mit dem Befehl „Docker Images“ überprüfen, ob das Image ngxin:tuling generiert wurde: # Docker-Build -t nginx:qingfeng. Darunter gibt -t den Image-Namen an und der Punkt (.) am Ende des Befehls gibt den Pfad an, in dem sich die Dockerfile-Datei befindet. 3. Führen Sie den folgenden Befehl aus, um einen Docker-Container mit diesem Image zu starten # docker run -d -p 92:80 nginx:qingfeng 4. Besuchen Sie http://Docker-Host-IP:92/. Dort sehen Sie die in der folgenden Abbildung dargestellte Schnittstelle. Das Schreiben von Dockerfile-Dateien umfasst außerdem die folgenden allgemeinen Anweisungen Hinweis: Der RUN-Befehl wird während der Erstellungsphase der Image-Datei ausgeführt und die Ausführungsergebnisse werden in die Image-Datei gepackt; der CMD-Befehl wird nach dem Start des Containers ausgeführt. Darüber hinaus kann ein Dockerfile mehrere RUN-Befehle, aber nur einen CMD-Befehl enthalten. Hinweis: Nach der Angabe des CMD-Befehls kann an den Befehl „Docker-Container ausführen“ kein Befehl angehängt werden (wie z. B. /bin/bash im vorherigen Befehl), da sonst der CMD-Befehl überschrieben wird. (IV) Verwenden von Dockerfile zum Erstellen von Microservice-Images Nehmen wir als Beispiel das Spring-Boot-Projekt ms-eureka-server (Quellcode am Ende). Dieses Projekt ist ein Spring Cloud Eureka Microservice-Projekt. Das Projekt kann in ein ausführbares JAR-Paket gepackt und über das Spring-Boot-Maven-Plugin ausgeführt werden, wie in der folgenden Abbildung dargestellt Erstellen Sie das ausführbare JAR-Paket des Projekts in ein Docker-Image: 1. Laden Sie das JAR-Paket in das Verzeichnis /app/eureka des Linux-Servers hoch und erstellen Sie eine Datei mit dem Namen Dockerfile in dem Verzeichnis, in dem sich das JAR-Paket befindet. 2. Fügen Sie dem Dockerfile den folgenden Inhalt hinzu Von Java:8 HINZUFÜGEN von microservice-eureka-server-0.0.1-SNAPSHOT.jar /app.jar
EXPOSE 8761 #Startup-Port des Microservices-Projektes EINSTIEGSPUNKT ["java","-jar","/app.jar"] 3. Verwenden Sie den Befehl „Docker Build“, um das Image zu erstellen # docker build -t microservice-eureka-server:0.0.1 . Hier wird der Bildtag mit der Option -t angegeben. Nach der Ausführung dieses Befehls gibt das Terminal Folgendes aus 4. Starten Sie das Image und fügen Sie -d hinzu, um im Hintergrund zu starten # docker run -p 8761:8761 microservice-eureka-server:0.0.1 5. Besuchen Sie http://Docker-Host-IP:8761/. Die Homepage des Microservice Eureka Server wird normal angezeigt. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: MySQL sql_mode-Analyse und Einstellungserklärung
>>: Das Lazy-Loading-Attributmuster in JavaScript verstehen
Einzeilige Funktionen vom Datumstyp in MySQL: CUR...
Dieser Artikel zeichnet das Installationstutorial...
Einleitung: Der Interface-Designer Joshua Porter h...
Inhaltsverzeichnis Entprellen Gaspedal Zusammenfa...
In vertikaler Richtung können Sie die Zeilenausri...
MySQL-Daemon konnte nicht gestartet werden – Fehl...
Standardmäßig ist der Tabellentitel horizontal ze...
Schritt 1: Installieren Sie den tiefen "Graf...
Ich habe kürzlich Dreamweaver verwendet, um eine P...
1. Entpacken Sie das heruntergeladene MySQL-Kompr...
Bevor wir Docker offiziell verwenden, machen wir ...
Welche Produkte möchten Sie erwähnen? Vor kurzem ...
Inhaltsverzeichnis einführen Installation und Ver...
Durch Aktivieren der Papierkorbfunktion können Si...
Inhaltsverzeichnis 1. Einleitung 2. Umgebung und ...