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:
Die Baidu-Enzyklopädie sagt uns:
Einführung in das erste DOCKER-Buch:
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 [root@localhost ~]# uname -r 3.10.0-957.el7.x86_64 Installieren Sie Docker in CentOS 7 Verwenden Sie den Befehl 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 [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: [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: [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: [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: 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.
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: Die MAINTAINER-Direktive wird verwendet, um den Eigentümer des Bildes und der Kontaktinformationen zu identifizieren. Beispiel: 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: Mit der RUN-Anweisung wird der angegebene Befehl im aktuellen Image ausgeführt. Beispiel: Mit der EXPOSE-Anweisung wird Docker mitgeteilt, dass die Anwendung innerhalb des Containers den angegebenen Port des Containers verwenden wird. Beispiel: Der ADD-Befehl wird verwendet, um Dateien und Verzeichnisse aus der Build-Umgebung in das Image zu kopieren. Beispiel: 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: 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 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:
|
<<: So optimieren Sie Bilder, um die Website-Leistung zu verbessern
>>: MySQL 5.6.24 (binär) automatisches Installationsskript unter Linux
Inhaltsverzeichnis Vorwort wissen Übung macht den...
Einführung Linux ist ein System, das automatisch ...
1. In Windows-Systemen erfordern viele Softwarein...
Tomcat CentOS-Installation Dieses Installationstu...
Inhaltsverzeichnis Canvas-bezogene Dokumente Effe...
SRIOV-Einführung, VF-Passthrough-Konfiguration un...
Verknüpfung: https://qydev.weixin.qq.com/wiki/ind...
Inhaltsverzeichnis 1. Warum brauchen wir Unit-Tes...
Erstellen einer Tabelle Tabelle erstellen Bestell...
Inhaltsverzeichnis Vorwort 1. Basisdaten 2. Verer...
Ressourcenzusammenführung und -komprimierung für ...
Inhaltsverzeichnis 1 Node.js-Methode zum Senden v...
--Backup der Homepage 1.txt-Text 2. Scannen Sie da...
Bei der Optimierung der Datenbankleistung wird im...
Ich habe vor Kurzem ein Testserver-Betriebssystem...