Eine Kurzanleitung zu Docker

Eine Kurzanleitung zu Docker

Docker bietet eine Möglichkeit, Software automatisch in einer sicheren und wiederholbaren Umgebung bereitzustellen, was den Beginn einer Revolution in der Entwicklung von Computerplattformen markiert. Heute ist Docker bei Internetunternehmen weit verbreitet. Dieser Artikel hilft Ihnen dabei, in zehn Minuten schnell mit Docker loszulegen.

Was ist Docker

Was ist Docker?

Einführung auf der offiziellen Website:

Enterprise-Container-Plattform für schnelle Innovationen. Erstellen, teilen und führen Sie jede Anwendung sicher aus, überall

Die Baidu-Enzyklopädie sagt uns:

Docker ist eine Open-Source-Container-Engine für Anwendungen, mit der Entwickler ihre Anwendungen und abhängigen Pakete in einen portablen Container packen und sie dann auf jeder gängigen Linux-Maschine veröffentlichen können. Auch Virtualisierung ist möglich. Der Container verwendet einen vollständigen Sandbox-Mechanismus und es gibt keine Schnittstelle zwischen ihnen.

Einführung in das erste DOCKER-Buch:

Docker ist eine Open-Source-Engine, die entwickelte Anwendungen automatisch in Containern bereitstellen kann. Geschrieben vom Team von Docker (www.docker.com, früher dotCloud, ein etablierter Anbieter im PaaS-Markt) und veröffentlicht unter dem Open-Source-Protokoll Apache 2.0.

Was Docker besonders macht:

Docker ist eine leichtgewichtige Virtualisierungstechnologie mit schneller Startgeschwindigkeit (die meisten Docker-Container können in weniger als 1 Sekunde gestartet werden). Hunderte oder Tausende von Containern können gleichzeitig auf einer einzigen Hardware laufen, was eine schnelle Erweiterung und elastische Skalierung erleichtert. Es wird gesagt, dass JD.com im Jahr 2016 150.000 Docker-Cluster verwendete, um die Systemstabilität im Szenario mit hoher Parallelität von 618 sicherzustellen.

Docker ist plattformübergreifend und unterstützt Windows, MacOS und Linux. Es kann „einmal erstellen, überall ausführen“ und löst eine Reihe von Problemen, die durch die Inkonsistenz zwischen der Entwicklungsumgebung und der Produktionsumgebung verursacht werden, sodass Entwickler und Betriebs- und Wartungspersonal harmonisch zusammenarbeiten können.

Docker ist Open Source und wird auf GitHub gehostet.

Docker-Idee

Verknüpfung des Docker-Kernkonzepts mit dem Docker-Logo

Das Logo von Docker ist ein großer Wal, der Container trägt. Dies ist sicherlich die anschaulichste Beschreibung und Erklärung von Docker.

Im Gegensatz zur Transportbranche gab es vor der Einführung von Containern keine einheitlichen Standardverfahren für den Umgang mit Waren. Manche Waren waren beispielsweise zerbrechlich und mussten mit Vorsicht behandelt werden, andere hingegen nicht. Daher ist für den Güterumschlag zwischen verschiedenen Transportmitteln wie Eisenbahn, Straße und Meer ein hoher Personalaufwand erforderlich, was äußerst ineffizient und teuer ist. Das Aufkommen von Containern löste dieses Problem. Alle Waren können in diese magische Kiste gelegt werden. Dann wird die Kiste in allen Transportszenarien wie Straßen, Eisenbahnen und Ozeanen während des Transports versiegelt. Darüber hinaus können die Transferarbeiten in der Mitte von großen Maschinen durchgeführt werden, was die Effizienz erheblich verbessert.

Docker hat die Idee von Standardcontainern formal übernommen und die Containeridee auf den Softwarebereich angewendet. Docker bietet ein standardisiertes containerbasiertes Transportsystem für Code, mit dem jede Anwendung und ihre abhängige Umgebung (wie Code, Konfigurationsdateien, JDK, Tomcat usw.) in einem Container gepackt werden kann, der auf fast allen Betriebssystemen ausgeführt werden kann.

Grundlegende Konzepte von Docker

Spiegel

Die Spiegelung ist der Grundstein von Docker und Benutzer können ihre eigenen Container auf Basis der Spiegelung ausführen.

Die Grundlage des Images ist das Union File System von Docker, das geschichtet ist und jedes Image stellt eine Ebene dar. Da jede Ebene über weitere Ebenen verfügt, können Bilder über anderen Bildern (Basisbildern) erstellt werden. Zum besseren Verständnis möchte ich ein Bild verwenden. Das Bild ist aus dem Internet, bei Rechtsverstößen bitte löschen.

Lagerhaus

Im Warehouse werden Benutzerabbilder gespeichert. Die offizielle Docker-Warehouse-Adresse lautet https://hub.docker.com. Es gibt viele Images auf Docker Hub, darunter das einfachste „Hello World“, MySQL usw. Selbstverständlich ist auch eine Anbindung an das eigene Lager möglich.

Container

Container stellen isolierte Laufzeiten für Anwendungen bereit. Jeder Container enthält eine vollständige und exklusive Benutzerumgebung. Änderungen der Betriebsumgebung in einem Container wirken sich nicht auf die Betriebsumgebung anderer Container aus, sodass Anwendungen fast überall auf die gleiche Weise ausgeführt werden können.

Der Container wird basierend auf dem Image gestartet und im Container können ein oder mehrere Prozesse ausgeführt werden. Beim Erstellen eines Containerprozesses werden die vom Prozess benötigten Namespace-Parameter angegeben, sodass der Container nur die durch den aktuellen Namespace begrenzten Ressourcen, Dateien, Geräte, Status oder Konfigurationen „sehen“ kann. Daher ist ein Container lediglich ein spezieller Prozess, und die Essenz eines Containers ist ein Prozess.

Docker-Installation

Nehmen Sie CentOS 7 als Beispiel, um Docker zu installieren.

Überprüfen Sie die Systemkernelversion

Docker läuft auf CentOS 7, das ein 64-Bit-Betriebssystem und eine Kernelversion von 3.10 oder höher erfordert.

Bestätigen Sie, dass der Linux-Kernel, der die Anforderungen erfüllt, auf diesem Computer installiert wurde. Verwenden Sie den Befehl uname -r um die Informationen zur Kernelversion zu überprüfen.

[root@localhost ~]# uname -r
3.10.0-957.el7.x86_64

Installieren Sie Docker in CentOS 7

Verwenden Sie den Befehl yum install -y docker , um Docker zu installieren. „-y“ bedeutet, nicht nachzufragen und die Standardkonfiguration für die Installation zu verwenden.

Starten Sie den Docker-Dienst und stellen Sie ihn so ein, dass er beim Booten automatisch gestartet wird.

Verwenden Sie den folgenden Befehl:

systemctl starte docker.service
systemctl aktiviere docker.service

Geben Sie docker version ein. Die zurückgegebenen Versionsinformationen zeigen an, dass Docker erfolgreich installiert wurde.

[root@localhost ~]# Docker-Version
Kunde:
 Version: 1.13.1
 API-Version: 1.26
 Paketversion: docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
 Go-Version: go1.10.3
 Git-Commit: b2f74b2/1.13.1
 Gebaut: Mittwoch, 1. Mai 2019, 14:55:20 Uhr
 Betriebssystem/Architektur: linux/amd64

Server:
 Version: 1.13.1
 API-Version: 1.26 (Mindestversion 1.12)
 Paketversion: docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
 Go-Version: go1.10.3
 Git-Commit: b2f74b2/1.13.1
 Gebaut: Mittwoch, 1. Mai 2019, 14:55:20 Uhr
 Betriebssystem/Architektur: linux/amd64
 Experimentell: falsch

Docker in Aktion – Hallo Welt

Was können wir vom klassischen „Hallo Welt“ lernen?

Ziehen Sie das Bild

Tatsächlich existiert dieses Image unter dem Namen „Hallo Welt“ bereits auf DockerHub. Ziehen Sie das Image direkt von DockerHub. Der Befehl ähnelt Git: docker pull hello-world

[root@localhost docker]# docker pull hallo-welt
Standard-Tag verwenden: latest
Es wird versucht, das Repository docker.io/library/hello-world abzurufen ... 
aktuell: Abrufen von docker.io/library/hello-world
1b930d010525: Ziehen abgeschlossen 
Zusammenfassung: sha256:41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8
Status: Neueres Image für docker.io/hello-world:latest heruntergeladen

Spiegel anzeigen

Sehen Sie sich das abgerufene Docker-Image an: docker images

[root@localhost ~]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
docker.io/hello-world latest fce289e99eb9 vor 5 Monaten 1,84 kB

Ausführen des Images

Führen Sie das Image aus: docker run hello-world . Wenn der folgende Inhalt ausgedruckt wird, bedeutet dies, dass der Vorgang erfolgreich war.

[root@localhost docker]# docker run hallo-welt

Hallo von Docker!
Diese Meldung zeigt, dass Ihre Installation scheinbar ordnungsgemäß funktioniert.

Um diese Nachricht zu generieren, hat Docker die folgenden Schritte ausgeführt:
 1. Der Docker-Client hat den Docker-Daemon kontaktiert.
 2. Der Docker-Daemon hat das „Hallo-Welt“-Image vom Docker-Hub abgerufen.
  (amd64)
 3. Der Docker-Daemon erstellt aus diesem Image einen neuen Container, der den
  ausführbare Datei, die die Ausgabe erzeugt, die Sie aktuell lesen.
 4. Der Docker-Daemon hat die Ausgabe an den Docker-Client gestreamt, der sie dann
  zu Ihrem Terminal.

Wenn Sie etwas Anspruchsvolleres ausprobieren möchten, können Sie einen Ubuntu-Container mit Folgendem ausführen:
 $ Docker ausführen -it Ubuntu Bash

Geben Sie Bilder frei, automatisieren Sie Workflows und mehr mit einer kostenlosen Docker-ID:
 https://hub.docker.com/

Weitere Beispiele und Ideen finden Sie unter:
 https://docs.docker.com/get-started/

Allgemeine Docker-Befehle

Docker-Images: Lokale Images auflisten

Docker Pull Image_Name: Zieht das Image. Wenn kein spezifischer Bild-Tag angegeben ist, wird automatisch das Bild mit dem neuesten Tag abgerufen.

Docker-Suche Bildname: Suche nach Bildern auf Docker Hub

Docker-Container starten: Container starten und ausführen

docker run [OPTIONEN] image_name: Erstellen und starten Sie einen Container basierend auf dem Image

Allgemeine Optionen:
-d: Führen Sie den Container im Hintergrund aus und geben Sie die Container-ID zurück.
-i: Führen Sie den Container im interaktiven Modus aus, normalerweise mit -t verwendet;
-t: weist dem Container ein Pseudo-Eingabeterminal neu zu, wird normalerweise zusammen mit -i verwendet;
-P: Zufällige Portzuordnung, der interne Port des Containers wird zufällig dem hohen Port des Hosts zugeordnet
-p: Gibt die Portzuordnung im Format „Host-Port: Container-Port“ an.

Docker-Logs-Container: Container-Log-Informationen abrufen

Docker-Container anhängen: Geben Sie den Container ein

exit: Container verlassen

Docker Exec-Containerbefehl: Führen Sie einen Befehl in einem laufenden Container aus

Docker Stop Container: Stoppen Sie den Container

Docker RM-Container: Einen Container löschen

docker save -o image_name.tar image_name: Exportiere das Image

Docker PS: Laufende Container anzeigen

docker ps -a: Liste der Container im System anzeigen

Docker-Top-Container: Prozesse im Container anzeigen

Docker Stop Daemon_Dave: Stoppen Sie den Daemon-Container.

Docker-Build-Image

Wie erstelle ich ein Bild?

Zum Erstellen Ihres eigenen Images sind zwei Schritte erforderlich:

Schreiben Sie eine Docker-Datei. Dockerfile teilt Docker mit, wie ein Image erstellt wird und wie jeder Schritt aussieht.

  • Der Prozess, mit dem Docker die Anweisungen im Dockerfile ausführt, läuft wie folgt ab:
    • Docker führt einen Container von einem Basisimage aus
    • Führen Sie eine Anweisung zum Ändern des Containers aus
    • Auf eine neue Bildebene festlegen
    • Docker führt dann einen neuen Container basierend auf dem gerade übermittelten Image aus
    • Führen Sie die nächste Anweisung im Dockerfile aus, bis alle Anweisungen ausgeführt sind.
  • Erstellen Sie mit dem Befehl „Docker Build“.

Schreiben einer Docker-Datei

Der erste Befehl in jeder Docker-Datei muss FROM sein. Die FROM-Anweisung gibt ein vorhandenes Image an und teilt Docker mit, dass nachfolgende Anweisungen auf diesem Image basieren. Beispiel: FROM java:8

Die MAINTAINER-Direktive wird verwendet, um den Eigentümer des Bildes und der Kontaktinformationen zu identifizieren. Beispiel: MAINTAINER James "×××@example.com"

Mit der VOLUME-Anweisung werden einem aus einem Image erstellten Container Volumes hinzugefügt. Ein Volume kann ein bestimmtes Verzeichnis sein, das in einem oder mehreren Containern vorhanden ist. Dieses Verzeichnis kann das Union-Dateisystem umgehen und Funktionen für gemeinsame Daten und Datenpersistenz bereitstellen.

Mit der CMD-Anweisung wird ein Befehl angegeben, der beim Starten eines Containers ausgeführt werden soll.

Der ENTRYPOINT-Befehl ist dem CMD-Befehl sehr ähnlich.

Mit der Anweisung WORKDIR wird beim Erstellen eines neuen Containers aus einem Image ein Arbeitsbefehl im Container festgelegt. Das mit der Anweisung ENTRYPOINT oder CMD angegebene Programm wird in diesem Verzeichnis ausgeführt.

Der ENV-Befehl wird verwendet, um während des Image-Erstellungsprozesses Umgebungsvariablen festzulegen. Beispiel: ENV TEST_PATH /home/test

Mit der RUN-Anweisung wird der angegebene Befehl im aktuellen Image ausgeführt. Beispiel: RUN apt-get install -y nginx

Mit der EXPOSE-Anweisung wird Docker mitgeteilt, dass die Anwendung innerhalb des Containers den angegebenen Port des Containers verwenden wird. Beispiel: EXPOSE 80

Der ADD-Befehl wird verwendet, um Dateien und Verzeichnisse aus der Build-Umgebung in das Image zu kopieren. Beispiel: ADD docker-0.0.1-SNAPSHOT.jar app.jar

Der COPY-Befehl ähnelt ADD, mit der Ausnahme, dass es bei COPY nur um das Kopieren lokaler Dateien im Build-Kontext geht, ohne diese zu extrahieren oder zu dekomprimieren.

Die LABEL-Anweisung wird verwendet, um einem Docker-Image Metadaten hinzuzufügen. Beispiel: LABEL name=test description="a container is used to test"

Dockerfile-Beispiel:

VON java:8
WARTUNGSBEARBEITER James "×××@example.com"
VOLUMEN /tmp
ADD docker-0.0.1-SNAPSHOT.jar app.jar
EINSTIEGSPUNKT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Docker-Build ausführen

Nach der Ausführung des docker build -Befehls wird „BUILD SUCCESS“ angezeigt, was bedeutet, dass der Build erfolgreich war. Sie können das Projekt jetzt mit dem docker run -Befehl ausführen.

Zusammenfassen

In diesem Artikel wird erklärt, was Docker ist, was Docker-Ideen, Docker-Kernkonzepte, Docker-Installation usw. sind. Nach dem Lesen dieses Artikels können Sie mit Docker loslegen, aber Sie haben nur den ersten Schritt auf einer langen Reise getan. Das Lernen hat kein Ende, also ermutigen wir uns gegenseitig.

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:
  • Tutorial zur Docker-Installation und einfachen Verwendung
  • Erste Schritte mit IPython und Docker-Containern
  • Eine vollständige Anleitung zur Docker-Befehlszeile (18 Dinge, die Sie wissen müssen)
  • Docker-Container vom Einstieg bis zur Obsession (empfohlen)
  • Zweistündiges Docker-Einführungstutorial
  • Einführung in Docker-Container
  • Einfaches Einführungstutorial zur Installation und Anwendung von Docker
  • Docker-Grundlagen

<<:  So optimieren Sie Bilder, um die Website-Leistung zu verbessern

>>:  MySQL 5.6.24 (binär) automatisches Installationsskript unter Linux

Artikel empfehlen

Eine kurze Diskussion über das Implementierungsprinzip von Webpack4-Plugins

Inhaltsverzeichnis Vorwort wissen Übung macht den...

So legen Sie die Umgebungsvariable PATH im Linux-System fest (3 Methoden)

1. In Windows-Systemen erfordern viele Softwarein...

Diagramm des Tomcat CentOS-Installationsprozesses

Tomcat CentOS-Installation Dieses Installationstu...

Erste Schritte mit Front-End-Vue-Unit-Tests

Inhaltsverzeichnis 1. Warum brauchen wir Unit-Tes...

MySQL-Datenbanktabellendesign mit Baumstruktur

Inhaltsverzeichnis Vorwort 1. Basisdaten 2. Verer...

Node.js versendet E-Mails basierend auf dem STMP-Protokoll und dem EWS-Protokoll

Inhaltsverzeichnis 1 Node.js-Methode zum Senden v...

Einige Dinge, die beim Erstellen einer Webseite zu beachten sind

--Backup der Homepage 1.txt-Text 2. Scannen Sie da...