Docker lernen Teil 1: Die Grundlagen

Anwendungscontainerisierungstechnologien werden häufig in der Softwareentwicklung und Datenanalyse eingesetzt. Diese Technologien tragen dazu bei, Anwendungen sicherer zu machen, ihre Bereitstellung zu vereinfachen und ihre Skalierbarkeit zu verbessern. Das Wachstum und die Entwicklung von Containerisierungstechnologien können als einer der wichtigsten Trends unserer Zeit angesehen werden.

Docker ist eine Plattform, mit der Anwendungen in Containern entwickelt, bereitgestellt und ausgeführt werden können. Das Wort "Docker" ist seit kurzem ein Synonym für das Wort "Containerisierung". Und wenn Sie Docker noch nicht verwenden, aber gleichzeitig in den Bereichen Anwendungsentwicklung oder Datenanalyse arbeiten oder arbeiten werden, werden Sie Docker sicherlich in Zukunft kennenlernen.

Teil 1: die Grundlagen
Teil 2: Begriffe und Konzepte
Teil 3: Dockerfile-Dateien
Teil 4: Verkleinern von Bildern und Beschleunigen ihrer Montage
Teil 5: Teams
Teil 6: Arbeiten mit Daten

Bild

Wenn Sie noch nicht wissen, was Docker ist, haben Sie jetzt die Möglichkeit, den ersten Schritt zum Verständnis dieser Plattform zu tun. Nachdem Sie dieses Material beherrschen, werden Sie die Grundlagen von Docker verstehen und gleichzeitig Pizza zubereiten.

Metaphern und Docker


Wir sind ständig mit Metaphern konfrontiert. Wenn Sie in Ozhegovs Wörterbuch schauen, stellt sich heraus, dass die Metapher "ein versteckter figurativer Vergleich ist, der ein Objekt, ein Phänomen mit einem anderen vergleicht". Metaphern helfen uns, die Essenz neuer Phänomene für uns zu erfassen. Beispielsweise können virtuelle Behälter mit gewöhnlichen Kunststoffbehältern verglichen werden. Ein solcher Vergleich hilft Ihnen, indem Sie die Eigenschaften gewöhnlicher Container, die uns bereits bekannt sind, mit den Eigenschaften virtueller Container vergleichen, um sie zuerst kennenzulernen und dann ihre Essenz zu verstehen.


Behälter

Wie Sie verstehen, werden wir das Gespräch über Docker mit dem Konzept des „Containers“ beginnen.

Behälter


Wie ein normaler Kunststoffbehälter weist ein Docker-Behälter die folgenden Eigenschaften auf:

  1. Sie können etwas darin speichern. Etwas kann entweder im Container oder draußen sein.
  2. Es kann getragen werden. Sie können den Docker-Container auf Ihrem lokalen Computer, auf dem Computer eines Kollegen oder auf einem Cloud-Service-Provider-Server (z. B. AWS) verwenden. Dadurch ähneln Docker-Container gewöhnlichen Containern, in denen sie beispielsweise beim Umzug in ein neues Haus verschiedene süße Schmuckstücke transportieren.
  3. Es ist bequem, etwas in den Behälter zu legen, und es ist bequem, etwas herauszunehmen. Ein gewöhnlicher Behälter hat einen Deckel an den Riegeln, der entfernt werden muss, um etwas in den Behälter zu legen oder etwas daraus zu entfernen. Docker-Container haben etwas Ähnliches, das ihre Schnittstelle darstellt, dh Mechanismen, die es ihnen ermöglichen, mit der Außenwelt zu interagieren. Ein Container verfügt beispielsweise über Ports, die geöffnet werden können, damit über einen Browser auf eine im Container ausgeführte Anwendung zugegriffen werden kann. Sie können mit dem Container auch mit Befehlszeilentools arbeiten.
  4. Wenn Sie einen Container benötigen, können Sie ihn im Online-Shop bestellen. Ein leerer Container kann beispielsweise auf der Amazon-Website gekauft werden. Container kommen von Herstellern in dieses Geschäft, die sie in großen Mengen mit Formen herstellen. Bei Docker-Containern wird das, was mit der Form verglichen werden kann, nämlich das Container-Image, in einem speziellen Repository gespeichert. Wenn Sie einen bestimmten Container benötigen, können Sie das entsprechende Image aus dem Repository herunterladen und mit diesem Container diesen Container erstellen.

Natürlich werden Plastikbehälter im Gegensatz zu Docker-Behältern niemand kostenlos an Sie senden, und wenn Sie sie erhalten, sind sie leer. In Docker-Containern steckt jedoch immer etwas Interessantes.

Lebende Organismen


Ein anderer Ansatz, um über Docker-Container nachzudenken, besteht darin, sie mit Fällen lebender Organismen zu vergleichen. Eine „Instanz“ existiert in irgendeiner Form. Dies ist nicht nur Code. Dies ist der Code, der die Existenz von etwas Größerem als sich selbst verursacht hat, etwas, bildlich gesprochen, lebendigem. Wie andere lebende Organismen werden Instanzen von Behältern geboren, leben und sterben.


Monster zum Leben erweckt

Docker-Container sind lebhafte Docker-Bilder.

Software


Docker-Container können nicht nur mit normalen Containern oder mit lebenden Organismen verglichen werden. Sie können mit Programmen verglichen werden. Container sind schließlich Programme. Grundsätzlich handelt es sich bei einem Container um eine Reihe von Anweisungen, die auf einem Prozessor ausgeführt werden und Daten verarbeiten.


Ein Container ist ein Programm

Zur Laufzeit führt der Docker-Container normalerweise eine Art Programm aus. Sie führt bestimmte Aktionen im Container aus, dh sie tut etwas Nützliches.

Beispielsweise hat Code, der in einem Docker-Container ausgeführt wird, möglicherweise den Text, den Sie lesen, an Ihren Computer gesendet. Es ist durchaus möglich, dass der im Docker-Container ausgeführte Code die Sprachbefehle, die Sie an Amazon Alexa senden, akzeptiert und in Anweisungen für einige andere Programme konvertiert, die in anderen Containern funktionieren.

Mit Docker können Sie mehrere Container gleichzeitig auf demselben Computer ausführen. Und wie jedes andere Programm können Docker-Container gestartet, gestoppt und gelöscht werden. Sie können ihren Inhalt untersuchen und erstellen.

Docker-Konzepte


IrtVirtuelle Maschinen


Die Vorgänger der Docker-Container waren virtuelle Maschinen. Eine virtuelle Maschine isoliert wie ein Container die Anwendung und ihre Abhängigkeiten von der externen Umgebung. Docker-Container bieten jedoch Vorteile gegenüber virtuellen Maschinen. Sie verbrauchen weniger Ressourcen, sind sehr einfach zu übertragen, starten schneller und kommen in einen gesunden Zustand. In diesem Artikel finden Sie einen detaillierten Vergleich von Containern und virtuellen Maschinen.

▍ Docker-Container-Image


Wir haben oben bereits über „Bilder“ gesprochen. Was ist das? Gute Frage. Was Docker als "Bild" oder im Englischen als "Bild" bezeichnet, ist überhaupt nicht dasselbe wie beispielsweise Fotografie (dies ist eine der Bedeutungen des Wortes "Bild").


Docker-Bilder sind keine Fotos

Die Bilder von Docker-Behältern können mit Zeichnungen, Ausstechformen oder Formen zur Herstellung von Kunststoffprodukten verglichen werden. Bilder sind unveränderliche Vorlagen, mit denen dieselben Container erstellt werden.


Docker-Container sehen aus wie Ausstechformen

Das Docker-Container-Image enthält das Image des Basisbetriebssystems, den Code der Anwendung und die Bibliothek, von der es abhängt. All dies ist als eine Einheit angeordnet, auf deren Grundlage Sie einen Container erstellen können.

▍ Docker-Datei


Die Docker-Datei enthält eine Reihe von Anweisungen, nach denen der Docker das Container-Image zusammenstellt. Diese Datei enthält eine Beschreibung des Basisbilds, bei dem es sich um die ursprüngliche Bildebene handelt. Unter den beliebten offiziellen Basisbildern sind Python , Ubuntu und Alpine zu finden.

Sie können dem Containerbild über dem Basisbild zusätzliche Ebenen hinzufügen. Dies erfolgt gemäß den Anweisungen aus der Dockerfile . Wenn die Dockerfile beispielsweise ein Bild beschreibt, das Sie zum Lösen von maschinellen Lernaufgaben verwenden möchten, enthält es möglicherweise Anweisungen zum Einfügen der NumPy-, Pandas- und Scikit-Lernbibliotheken in die Zwischenebene eines solchen Bildes.

Und schließlich kann das Bild zusätzlich zu allen anderen eine weitere dünne Schicht enthalten, deren gespeicherte Daten geändert werden können. Dies ist eine kleine Volumenebene, die das Programm enthält, das Sie im Container ausführen möchten.

▍ Docker Container


Um den Container zu starten, benötigen wir erstens das Image des Containers und zweitens die Umgebung, in der Docker installiert ist, um einen Befehl des Formular-Dockers zu verstehen, der docker run image_name . Dieser Befehl erstellt einen Container aus dem Image und startet ihn.

▍ Container-Repository


Wenn Sie anderen Personen ermöglichen möchten, Container basierend auf Ihrem Bild zu erstellen, können Sie dieses Bild an die Cloud senden. Das größte derartige Repository ist das Docker Hub- Repository. Es wird standardmäßig bei der Arbeit mit Docker verwendet.

Wir haben bereits viele Dinge besprochen. Es ist Zeit, alles zusammenzusetzen und die Arbeit mit Docker-Containern mit Pizza zu vergleichen.

Kochen mit Docker



Fertige Pizza ist ein Behälter

  • Ein Dockerfile ist eine Dockerfile . Er sagt uns, was zu tun ist, um das Ziel zu erreichen, einen funktionierenden Container zu bekommen.
  • Die Zutaten, aus denen Pizza besteht, sind Schichten des Behälterbildes. Für unsere Pizza benötigen Sie Kuchen, Sauce und Käse.

Wenn Sie das Rezept und die Zutaten auf den Tisch legen, stellt sich heraus, dass an einem Ort alles gesammelt wird, was Sie zum Kochen von Pizza benötigen. All dies kann mit dem Image des Docker-Containers verglichen werden.
Aus dem Rezept ( Dockerfile ) können Sie herausfinden, welche Abfolge von Aktionen Sie ausführen müssen, um Pizza zu kochen:

  • Korzh ist gebrauchsfertig, wir ändern es nicht. Es kann mit dem Grundbild des Ubuntu-Betriebssystems verglichen werden. Dies ist die unterste Ebene des Bildes. Sie wird zuerst dem Bild hinzugefügt.
  • Dann wird dem Kuchen Käse hinzugefügt. Dies ist wie das Hinzufügen einer zweiten Ebene zum Bild als externe Bibliothek wie NumPy.
  • Dann auf den Käse die Sauce geben. Dies ist der Code der Anwendung, die im Container ausgeführt werden soll.

Jetzt ist es Zeit, Pizza im Ofen zu kochen.


Oven ist eine Docker-Plattform

Der Ofen, in dem die Pizza gekocht wird, ähnelt der Docker-Plattform. Der Ofen ist in der Küche installiert, mit dessen Hilfe Sie Essen kochen können. Auf die gleiche Weise wird Docker auf einem Computer installiert, um Container zu „kochen“.

Wenn der Ofen elektrisch ist, wird er durch Drehen des Knopfes des Temperaturreglers eingeschaltet. Der docker run image_name ist so etwas wie ein Temperaturregler, dessen „Drehung“ das System veranlasst, einen Container zu erstellen und zu starten.

Fertige Pizza - das ist der Docker-Container.

Und Pizza zu essen bedeutet, die im Container laufende Anwendung zu verwenden.

Wie bei der Herstellung von Pizza dauert die Vorbereitung auf die Arbeit von Docker-Containern einige Zeit, aber im Finale und in beiden Fällen stellt sich heraus, dass es etwas Leckeres ist.

Zusammenfassung


Hier haben wir auf konzeptioneller Ebene die Grundlagen von Docker behandelt. Wir hoffen, dass die hier vorgestellten Vergleiche Ihnen geholfen haben, zu verstehen, was Docker ist, und den Wert von Metaphern bei der Beherrschung neuer Technologien zu spüren.

Liebe Leser! Dieser Beitrag ist eine Übersetzung des ersten Artikels in der Docker-Tutorialserie. Nach Angaben des Autors sollen insgesamt 5 solcher Materialien veröffentlicht werden. Der zweite , dritte und vierte Teil sind bereits fertig. Sagen Sie uns, lohnt es sich, die folgenden Artikel in dieser Reihe zu übersetzen?

Source: https://habr.com/ru/post/de438796/


All Articles