Docker Tutorial - Einführung in Docker & Containerization



In diesem Docker-Tutorial werden Sie die Notwendigkeit von Docker verstehen und eine Einführung in Docker erhalten. Es ist das erste Blog in der Docker-Tutorialserie

Ich hoffe, Sie haben die Reihe früherer DevOps Tutorial-Blogs nicht verpasst. Gehe durch die Hier.Der unaufhaltsame Trend bei Docker-Containern wächst und Unternehmen suchen nach Fachleuten .Dieses Mal führen wir Sie durch eine Einführung in Docker.

Docker-Tutorial

In diesem Docker-Tutorial-Blog erhalten Sie einen konzeptionellen und praktischen Einblick in Docker - eine New-Age-Containerisierungstechnologie.





In diesem Blog konzentrieren wir uns auf die folgenden Themen:

  • Was ist Virtualisierung?
  • Was ist Containerisierung?
  • Vorteile der Containerisierung gegenüber der Virtualisierung
  • Einführung in Docker
  • Vorteile von Docker
  • Virtualisierung vs Containerisierung
  • Docker-Installation
  • Dockerfile, Docker Image & Docker Container
  • Was ist Docker Hub?
  • Docker-Architektur
  • Docker Compose

Docker wird immer beliebter und seine Nutzung verbreitet sich wie ein Lauffeuer. Der Grund für die wachsende Beliebtheit von Docker ist das Ausmaß, in dem es in einer IT-Organisation eingesetzt werden kann. Nur wenige Tools verfügen über die Funktionalität, sich sowohl für Entwickler als auch für Systemadministratoren als nützlich zu erweisen. Docker ist ein solches Tool, das sein Versprechen wirklich erfüllt Bauen , Schiff und Lauf .



Mit einfachen Worten, Docker ist eine Software-Containerisierungsplattform, dh Sie können Ihre Anwendung erstellen, sie zusammen mit ihren Abhängigkeiten in einen Container packen und diese Container dann problemlos für die Ausführung auf anderen Computern versenden.

Beispielsweise: Betrachten wir eine Linux-basierte Anwendung, die sowohl in Ruby als auch in Python geschrieben wurde. Diese Anwendung erfordert eine bestimmte Version von Linux, Ruby und Python. Um Versionskonflikte auf Benutzerseite zu vermeiden, kann ein Linux-Docker-Container mit den erforderlichen Versionen von Ruby und Python erstellt werden, die zusammen mit der Anwendung installiert sind. Jetzt können die Endbenutzer die Anwendung einfach verwenden, indem sie diesen Container ausführen, ohne sich um die Abhängigkeiten oder Versionskonflikte kümmern zu müssen.

Diese Container verwenden die Containerisierung, die als weiterentwickelte Version der Virtualisierung betrachtet werden kann. Die gleiche Aufgabe kann auch mit virtuellen Maschinen erreicht werden, ist jedoch nicht sehr effizient.



An dieser Stelle erhalte ich im Allgemeinen eine Frage, d. H. Was ist der Unterschied zwischen Virtualisierung und Containerisierung? Diese beiden Begriffe sind einander sehr ähnlich. Lassen Sie mich zunächst sagen, was Virtualisierung ist.

Was ist Virtualisierung?

Virtualisierung ist die Technik zum Importieren eines Gastbetriebssystems auf ein Hostbetriebssystem. Diese Technik war am Anfang eine Offenbarung, da Entwickler mehrere Betriebssysteme auf verschiedenen virtuellen Maschinen ausführen konnten, die alle auf demselben Host ausgeführt wurden. Dadurch wurde keine zusätzliche Hardwareressource benötigt. Die Vorteile von virtuellen Maschinen oder Virtualisierung sind:

  • Auf demselben Computer können mehrere Betriebssysteme ausgeführt werden
  • Wartung und Wiederherstellung waren bei Ausfallbedingungen einfach
  • Die Gesamtbetriebskosten waren aufgrund des geringeren Infrastrukturbedarfs ebenfalls geringer

Architektur virtueller Maschinen - Docker-Tutorial zur Einführung in Docker - Edureka

In der Abbildung rechts sehen Sie ein Host-Betriebssystem, auf dem drei Gastbetriebssysteme ausgeführt werden, bei denen es sich nur um die virtuellen Maschinen handelt.

Da Sie wissen, dass nichts perfekt ist, weist die Virtualisierung auch einige Mängel auf. Das Ausführen mehrerer virtueller Maschinen im selben Host-Betriebssystem führt zu Leistungseinbußen. Dies liegt daran, dass das Gastbetriebssystem auf dem Hostbetriebssystem ausgeführt wird, das über einen eigenen Kernel sowie eine Reihe von Bibliotheken und Abhängigkeiten verfügt. Dies beansprucht einen großen Teil der Systemressourcen, d. H. Festplatte, Prozessor und insbesondere RAM.

Ein weiteres Problem bei virtuellen Maschinen, die Virtualisierung verwenden, besteht darin, dass der Startvorgang fast eine Minute dauert.Dies ist bei Echtzeitanwendungen sehr wichtig.

Im Folgenden sind die Nachteile der Virtualisierung aufgeführt:

  • Das Ausführen mehrerer virtueller Maschinen führt zu einer instabilen Leistung
  • Hypervisoren sind nicht so effizient wie das Host-Betriebssystem
  • Der Startvorgang ist lang und dauert einige Zeit

Diese Nachteile führten zur Entstehung einer neuen Technik namens Containerisierung. Lassen Sie mich jetzt etwas über Containerisierung erzählen.

Was ist Containerisierung?

Containerisierung ist die Technik, um Virtualisierung auf Betriebssystemebene zu bringen. Während Virtualisierung Abstraktion auf die Hardware bringt, bringt Containerisierung Abstraktion auf das Betriebssystem. Beachten Sie, dass die Containerisierung auch eine Art der Virtualisierung ist. Die Containerisierung ist jedoch effizienter, da hier kein Gastbetriebssystem vorhanden ist und das Betriebssystem eines Hosts verwendet wird. Im Gegensatz zu virtuellen Maschinen werden relevante Bibliotheken und Ressourcen bei Bedarf gemeinsam genutzt. Anwendungsspezifische Binärdateien und Containerbibliotheken werden auf dem Host-Kernel ausgeführt, wodurch die Verarbeitung und Ausführung sehr schnell erfolgt. Selbst das Hochfahren eines Containers dauert nur einen Bruchteil einer Sekunde. Da alle Container das Host-Betriebssystem gemeinsam nutzen und nur die anwendungsbezogenen Binärdateien und Bibliotheken enthalten. Sie sind leicht und schneller als virtuelle Maschinen.

Vorteile der Containerisierung gegenüber der Virtualisierung:

  • Container auf demselben Betriebssystemkern sind leichter und kleiner
  • Bessere Ressourcennutzung im Vergleich zu VMs
  • Der Startvorgang ist kurz und dauert einige Sekunden

In der Abbildung rechts sehen Sie, dass es ein Host-Betriebssystem gibt, das von allen Containern gemeinsam genutzt wird. Container enthalten nur anwendungsspezifische Bibliotheken, die für jeden Container separat sind. Sie sind schneller und verschwenden keine Ressourcen.

Alle diese Container werden von der Containerisierungsschicht verwaltet, die nicht für das Host-Betriebssystem typisch ist. Daher wird eine Software benötigt, mit der Sie Container auf Ihrem Host-Betriebssystem erstellen und ausführen können.

Marionette gegen Koch gegen Ansible

In diesem Docker-Tutorial-Video erfahren Sie mehr über Docker.

Docker Tutorial für Anfänger | Was ist Docker? | DevOps Tools | Edureka

Lassen Sie mich Sie nun durch die Einführung in Docker führen.

Docker Tutorial - Einführung in Docker

Docker ist eine Containerisierungsplattform, die Ihre Anwendung und alle ihre Abhängigkeiten in Form von Containern zusammenfasst, um sicherzustellen, dass Ihre Anwendung in jeder Umgebung nahtlos funktioniert.

Wie Sie in der Abbildung rechts sehen können, wird jede Anwendung in einem separaten Container ausgeführt und verfügt über eigene Bibliotheken und Abhängigkeiten. Dies stellt auch sicher, dass eine Isolation auf Prozessebene besteht, was bedeutet, dass jede Anwendung unabhängig von anderen Anwendungen ist, sodass Entwickler sicher sein können, dass sie Anwendungen erstellen können, die sich nicht gegenseitig stören.

Als Entwickler kann ich einen Container erstellen, auf dem verschiedene Anwendungen installiert sind, und ihn meinem QS-Team übergeben, das den Container nur ausführen muss, um die Entwicklerumgebung zu replizieren.

Vorteile von Docker

Jetzt muss das QA-Team nicht mehr alle abhängigen Software- und Anwendungsprogramme installieren, um den Code zu testen. Dies hilft ihnen, viel Zeit und Energie zu sparen. Dies stellt auch sicher, dass die Arbeitsumgebung für alle am Prozess beteiligten Personen von der Entwicklung bis zur Bereitstellung konsistent ist. Die Anzahl der Systeme kann einfach vergrößert und der Code mühelos auf ihnen bereitgestellt werden.

Virtualisierung vs Containerisierung

Mit Virtualisierung und Containerisierung können Sie mehrere Betriebssysteme auf einem Host-Computer ausführen.

Bei der Virtualisierung werden viele Betriebssysteme auf einem einzigen Host-Computer erstellt. Durch die Containerisierung werden je nach Bedarf mehrere Container für jeden Anwendungstyp erstellt.

Zahl: Was ist Big Data Analytics? Virtualisierung versus Containerisierung

Wie wir auf dem Bild sehen können, besteht der Hauptunterschied darin, dass es in der Virtualisierung mehrere Gastbetriebssysteme gibt, die in der Containerisierung fehlen. Das Beste an der Containerisierung ist, dass sie im Vergleich zur umfangreichen Virtualisierung sehr leicht ist.

Lassen Sie uns nun Docker installieren.

Installieren Sie Docker:

Ich werde Docker auf meinem Ubuntu 17.10-Computer installieren. Im Folgenden finden Sie die Schritte zum Installieren von Docker:

  1. Installieren Sie die erforderlichen Pakete
  2. Richten Sie das Docker-Repository ein
  3. Installieren Sie Docker unter Ubuntu

1. Installieren Sie die erforderlichen Pakete:

Es gibt bestimmte Pakete, die Sie in Ihrem System für die Installation von Docker benötigen. Führen Sie den folgenden Befehl aus, um diese Pakete zu installieren.

sudo apt-get installiere curl apt-transport-https ca-zertifiziere software-properties-common

2. Docker Repository einrichten:

Importieren Sie jetzt den offiziellen GPG-Schlüssel von Dockers, um die Signatur der Pakete zu überprüfen, bevor Sie sie mit apt-get installieren. Führen Sie den folgenden Befehl auf dem Terminal aus:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key hinzufügen

Fügen Sie nun das Docker-Repository auf Ihrem Ubuntu-System hinzu, das Docker-Pakete einschließlich ihrer Abhängigkeiten enthält. Führen Sie dazu den folgenden Befehl aus:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stabil'

3. Installieren Sie Docker unter Ubuntu:

Jetzt müssen Sie den apt-Index aktualisieren und die Docker Community Edition installieren. Führen Sie dazu die folgenden Befehle aus:

sudo apt-get update sudo apt-get installiere docker-ce

Herzliche Glückwünsche! Sie haben Docker erfolgreich installiert. Schauen Sie sich auch einige häufig verwendete an Docker-Befehle .

Lassen Sie uns nun einige wichtige Docker-Konzepte sehen.

Dockerfile, Docker Image und Docker Container:

  1. Ein Docker-Image wird durch die Folge von Befehlen erstellt, die in eine Datei namens Dockerfile geschrieben werden.
  2. Wenn diese Docker-Datei mit einem Docker-Befehl ausgeführt wird, wird ein Docker-Image mit einem Namen erstellt.
  3. Wenn dieses Image mit dem Befehl 'docker run' ausgeführt wird, startet es selbst die Anwendung oder den Dienst, die es bei seiner Ausführung starten muss.

Docker Hub:

Docker Hub ist wie GitHub für Docker Images. Es handelt sich im Grunde genommen um eine Cloud-Registrierung, in der Sie Docker-Bilder finden, die von verschiedenen Communitys hochgeladen wurden. Sie können auch Ihr eigenes Bild entwickeln und auf Docker Hub hochladen. Zunächst müssen Sie jedoch ein Konto auf DockerHub erstellen.

Docker-Architektur:

Es besteht aus einer Docker Engine, einer Client-Server-Anwendung mit drei Hauptkomponenten:

  1. Ein Server, bei dem es sich um eine Art lang laufendes Programm handelt, das als Daemon-Prozess bezeichnet wird (Docker-Befehl).
  2. Eine REST-API, die Schnittstellen angibt, über die Programme mit dem Dämon kommunizieren und ihn anweisen können, was zu tun ist.
  3. Ein CLI-Client (Command Line Interface) (der Docker-Befehl).
  4. Die CLI verwendet die Docker-REST-API, um den Docker-Dämon über Skripte oder direkte CLI-Befehle zu steuern oder mit ihnen zu interagieren. Viele andere Docker-Anwendungen verwenden die zugrunde liegende API und CLI.

Lesen Sie diesen Blog, um mehr darüber zu erfahren .

Schließlich werde ich in diesem Docker Tutorial-Blog über Docker Compose sprechen.

Docker Compose:

Docker Compose wird grundsätzlich verwendet, um mehrere Docker-Container als einen einzigen Server auszuführen. Lassen Sie mich Ihnen ein Beispiel geben:

Angenommen, ich habe eine Anwendung, die WordPress, Maria DB und PHP MyAdmin erfordert. Ich kann eine Datei erstellen, die beide Container als Dienst startet, ohne dass jeder einzeln gestartet werden muss. Dies ist besonders dann nützlich, wenn Sie über eine Microservice-Architektur verfügen.

Verweise auf meinen Blog auf Docker Container zu verstehen, wie man es praktisch ausführt.

In diesem Blog erfahren Sie auch, wie Sie mit Docker Compose eine Mean-Stack-Anwendung containerisieren können.

Damit endet der erste Blog von Docker Tutorial zur Einführung in Docker & Containerization.

Lesen Sie unseren nächsten Blog auf Docker:

Nachdem Sie verstanden haben, was DevOps ist, lesen Sie unsere von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Edureka DevOps-Zertifizierungskurs hilft den Lernenden, Kenntnisse in verschiedenen DevOps-Prozessen und -Tools wie Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack und GIT für die Automatisierung mehrerer Schritte in SDLC zu erlangen.

Hast du eine Frage an uns? Bitte erwähnen Sie es in den Kommentaren und wir werden uns bei Ihnen melden.

sas Programmier-Tutorial für Anfänger