{"id":36772,"date":"2019-10-31T22:13:44","date_gmt":"2019-10-31T19:13:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ponimaya-docker\/"},"modified":"2019-10-31T22:13:44","modified_gmt":"2019-10-31T19:13:44","slug":"ponimaya-docker","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ponimaya-docker","title":{"rendered":"Docker verstehen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Ich nutze Docker seit mehreren Monaten, um den Entwicklungs- und Bereitstellungsprozess von Webprojekten zu strukturieren. Ich m\u00f6chte den Lesern von \u201eHabrHabr\u201c die \u00dcbersetzung des Einf\u00fchrungsartikels \u00fcber Docker anbieten \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/introduction\/understanding-docker\/\">\u201eDocker verstehen\u201c<\/a><\/noindex>.<\/i><\/p>\n<h3>Was ist Docker?<\/h3>\n<p>\nDocker ist eine offene Plattform zur Entwicklung, Bereitstellung und Ausf\u00fchrung von Anwendungen. Docker wurde entwickelt, um das Bereitstellen Ihrer Anwendungen zu beschleunigen. Mit Docker k\u00f6nnen Sie Ihre Anwendung von Ihrer Infrastruktur trennen und die Infrastruktur wie eine verwaltete Anwendung behandeln. Docker hilft Ihnen, Ihren Code schneller bereitzustellen, schneller zu testen und die Zeit zwischen dem Schreiben und Ausf\u00fchren des Codes zu verk\u00fcrzen. Docker erreicht dies durch eine leichte Plattform zur Container-Virtualisierung und nutzt Prozesse und Tools, die helfen, Ihre Anwendungen zu verwalten und bereitzustellen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIn seiner Kernfunktion erm\u00f6glicht Docker das Ausf\u00fchren nahezu jeder Anwendung, die sicher in Containern isoliert ist. Diese sichere Isolation erlaubt es Ihnen, viele Container gleichzeitig auf einem einzigen Host zu betreiben. Die leichte Natur des Containers, der ohne zus\u00e4tzliche Belastung durch einen Hypervisor betrieben wird, erm\u00f6glicht Ihnen, mehr aus Ihrer Hardware herauszuholen.<\/p>\n<p>Die Plattform und die Werkzeuge zur Container-Virtualisierung k\u00f6nnen in den folgenden F\u00e4llen n\u00fctzlich sein:<\/p>\n<ul>\n<li>Packen Ihrer Anwendung (und der verwendeten Komponenten) in Docker-Container;<\/li>\n<li>Verteilung und Bereitstellung dieser Container f\u00fcr Ihre Teams zur Entwicklung und zum Testen;<\/li>\n<li>Bereitstellung dieser Container in Ihren Produktionsumgebungen, sowohl in Rechenzentren als auch in der Cloud.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Wof\u00fcr kann ich Docker verwenden?<\/h3>\n<p><\/p>\n<h4>Schnelle Bereitstellung Ihrer Anwendungen<\/h4>\n<p>\nDocker eignet sich hervorragend zur Organisation des Entwicklungszyklus. Docker erm\u00f6glicht Entwicklern die Verwendung lokaler Container mit Anwendungen und Diensten, die anschlie\u00dfend mit dem Prozess der kontinuierlichen Integration und Bereitstellung (Continuous Integration and Deployment Workflow) integriert werden k\u00f6nnen.<\/p>\n<p>Zum Beispiel schreiben Ihre Entwickler den Code lokal und teilen ihren Entwicklungsstack (eine Reihe von Docker-Images) mit Kollegen. Wenn sie bereit sind, senden sie den Code und die Container an die Testumgebung und f\u00fchren alle erforderlichen Tests durch. Von der Testumgebung aus k\u00f6nnen sie den Code und die Images in die Produktion bringen.<\/p>\n<h4>Einfacheres Bereitstellen und Bereitstellen<\/h4>\n<p>\nDie auf Containerisierung basierende Docker-Plattform erm\u00f6glicht es, Ihre Workloads ganz einfach zu portieren. Docker-Container k\u00f6nnen sowohl auf Ihrem lokalen Rechner als auch auf einer physischen oder virtuellen Maschine im Rechenzentrum sowie in der Cloud betrieben werden.<\/p>\n<p>Die Portabilit\u00e4t und die Leichtigkeit von Docker erm\u00f6glichen es, Ihre Workloads dynamisch zu verwalten. Sie k\u00f6nnen Docker verwenden, um Ihre Anwendung oder Dienste schnell bereitzustellen oder zu stoppen. Die Geschwindigkeit von Docker erm\u00f6glicht dies nahezu in Echtzeit.<\/p>\n<h4>Hohe Lasten und mehr Workloads<\/h4>\n<p>\nDocker ist leichtgewichtig und schnell. Es bietet eine zuverl\u00e4ssige, kosteneffiziente Alternative zu Hypervisor-basierten virtuellen Maschinen. Besonders n\u00fctzlich ist es unter hoher Last, beispielsweise beim Aufbau einer eigenen Cloud oder Plattformen als Service. Aber es ist auch vorteilhaft f\u00fcr kleine und mittlere Anwendungen, wenn Sie mehr aus den vorhandenen Ressourcen herausholen m\u00f6chten.<\/p>\n<h3>Hauptkomponenten von Docker<\/h3>\n<p>\nDocker besteht aus zwei Hauptkomponenten:<\/p>\n<ul>\n<li>Docker: eine Open-Source-Virtualisierungsplattform;<\/li>\n<li>Docker Hub: unsere Plattform als Service zur Verteilung und Verwaltung von Docker-Containern.<\/li>\n<\/ul>\n<p>\n<i>Hinweis! Docker wird unter der Apache 2.0 Lizenz verbreitet.<\/i><\/p>\n<h3>Architektur von Docker<\/h3>\n<p><\/p>\n<p>Docker verwendet eine Client-Server-Architektur. Der Docker-Client kommuniziert mit dem Docker-Daemon, der die Erstellung, Ausf\u00fchrung und Verteilung Ihrer Container \u00fcbernimmt. Sowohl der Client als auch der Server k\u00f6nnen auf demselben System arbeiten; Sie k\u00f6nnen den Client auch mit einem entfernten Docker-Daemon verbinden. Der Client und der Server kommunizieren \u00fcber einen Socket oder \u00fcber eine RESTful API.<\/p>\n<p><img decoding=\"async\" alt=\"Docker verstehen\" src=\"\/wp-content\/uploads\/2019\/08\/eb67e625e776737163e49a41829ed102.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Docker-Daemon<\/h4>\n<p>\nWie in der Abbildung gezeigt, wird der Docker-Daemon auf der Host-Maschine gestartet. Der Benutzer interagiert nicht direkt mit dem Server, sondern verwendet daf\u00fcr den Client.<\/p>\n<h4>Docker-Client<\/h4>\n<p>\nDer Docker-Client, das Programm docker, ist das Hauptinterface zu Docker. Es erh\u00e4lt Befehle vom Benutzer und kommuniziert mit dem Docker-Daemon.<\/p>\n<h4>Innerhalb von Docker<\/h4>\n<p>\nUm zu verstehen, aus welchen Komponenten Docker besteht, m\u00fcssen Sie \u00fcber drei Elemente Bescheid wissen:<\/p>\n<ul>\n<li>Bilder (Images)<\/li>\n<li>Registrierungen (Registries)<\/li>\n<li>Container<\/li>\n<\/ul>\n<h4>Images<\/h4>\n<p>\nEin Docker-Image ist eine schreibgesch\u00fctzte Vorlage. Beispielsweise kann ein Image das Betriebssystem Ubuntu mit Apache und einer darauf laufenden Anwendung enthalten. Images werden zur Erstellung von Containern verwendet. Docker erm\u00f6glicht es, leicht neue Images zu erstellen, bestehende zu aktualisieren oder Sie k\u00f6nnen Images herunterladen, die von anderen erstellt wurden. Images sind eine Komponente des Docker-Systems.<\/p>\n<h4>Registrierung<\/h4>\n<p>\nDas Docker-Registry speichert Images. Es gibt \u00f6ffentliche und private Registrys, aus denen Images heruntergeladen oder hochgeladen werden k\u00f6nnen. Das \u00f6ffentliche Docker-Registry ist <noindex><a rel=\"nofollow\" href=\"http:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Dort befindet sich eine riesige Sammlung von Images. Wie Sie wissen, k\u00f6nnen Images von Ihnen erstellt werden oder Sie k\u00f6nnen Images verwenden, die von anderen erstellt wurden. Registrys sind eine Komponente der Verteilung.<\/p>\n<h4>Container<\/h4>\n<p>\nContainer sind vergleichbar mit Verzeichnissen. In Containern befindet sich alles, was f\u00fcr den Betrieb einer Anwendung erforderlich ist. Jeder Container wird aus einem Image erstellt. Container k\u00f6nnen erstellt, gestartet, gestoppt, verschoben oder gel\u00f6scht werden. Jeder Container ist isoliert und bietet eine sichere Plattform f\u00fcr die Anwendung. Container sind ein wesentlicher Bestandteil des Betriebs.<\/p>\n<h4>Wie funktioniert Docker?<\/h4>\n<p>\nBisher wissen wir, dass:<\/p>\n<ul>\n<li>wir Images erstellen k\u00f6nnen, die unsere Anwendungen enthalten;<\/li>\n<li>wir Container aus Images erstellen k\u00f6nnen, um Anwendungen auszuf\u00fchren;<\/li>\n<li>wir Images \u00fcber Docker Hub oder ein anderes Image-Registry verbreiten k\u00f6nnen.<\/li>\n<\/ul>\n<p>\nLassen Sie uns betrachten, wie diese Komponenten zusammenwirken.<\/p>\n<h4>Wie funktioniert ein Image?<\/h4>\n<p>\nWir wissen bereits, dass ein Image eine schreibgesch\u00fctzte Vorlage ist, aus der ein Container erstellt wird. Jedes Image besteht aus einer Reihe von Schichten. Docker verwendet <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/UnionFS\">das Union-Dateisystem<\/a><\/noindex> um diese Schichten zu einem einzigen Image zu kombinieren. Das Union-Dateisystem erm\u00f6glicht es Dateien und Verzeichnissen aus verschiedenen Dateisystemen (verschiedenen Zweigen), transparent \u00fcbereinandergelegt zu werden und so ein konsistentes Dateisystem zu schaffen.<\/p>\n<p>Ein Grund, warum Docker leichtgewichtig ist, liegt in der Verwendung von Schichten. Wenn Sie ein Image \u00e4ndern, beispielsweise eine Anwendung aktualisieren, wird eine neue Schicht erstellt. So wird, anstatt das gesamte Image zu ersetzen oder neu zu erstellen, wie Sie es m\u00f6glicherweise mit einer virtuellen Maschine tun m\u00fcssen, nur eine Schicht hinzugef\u00fcgt oder aktualisiert. Und Sie m\u00fcssen das gesamte neue Image nicht verteilen, sondern nur das Update, was die Verbreitung von Images einfacher und schneller macht.<\/p>\n<p>Jedes Image basiert auf einem Basisimage. Zum Beispiel ist ubuntu das Basisimage von Ubuntu, oder fedora das Basisimage der Fedora-Distribution. Sie k\u00f6nnen Images auch als Grundlage f\u00fcr die Erstellung neuer Images verwenden. Wenn Sie beispielsweise ein Apache-Image haben, k\u00f6nnen Sie es als Basisimage f\u00fcr Ihre Webanwendungen verwenden.<\/p>\n<p><i>Hinweis! Docker bezieht in der Regel Images aus dem Docker Hub-Registry.<\/i><\/p>\n<p>Docker-Images k\u00f6nnen aus diesen Basisimages erstellt werden, die Schritte zur Erstellung dieser Images nennen wir Anweisungen. Jede Anweisung erzeugt ein neues Image oder eine neue Schicht. Die Anweisungen sind folgende Aktionen:<\/p>\n<p><\/p>\n<ul>\n<li>Befehle ausf\u00fchren<\/li>\n<li>Datei oder Verzeichnis hinzuf\u00fcgen<\/li>\n<li>Umgebungsvariable erstellen<\/li>\n<li>Anweisungen, was bei der Ausf\u00fchrung dieses Container-Images zu starten ist<\/li>\n<\/ul>\n<p>Diese Anweisungen werden in einer Datei gespeichert <code>Dockerfile<\/code>. Docker liest dies <code>Dockerfile<\/code>, wenn Sie das Image erstellen, f\u00fchrt es diese Anweisungen aus und gibt das endg\u00fcltige Image zur\u00fcck.<\/p>\n<h4>Wie funktioniert das Docker-Registry?<\/h4>\n<p>\nDas Registry ist ein Speicher f\u00fcr Docker-Images. Nach der Erstellung eines Images k\u00f6nnen Sie es in einem \u00f6ffentlichen Registry wie Docker Hub oder in Ihrem eigenen Registry ver\u00f6ffentlichen.<\/p>\n<p>Mit dem Docker-Client k\u00f6nnen Sie bereits ver\u00f6ffentlichte Images suchen und auf Ihre Maschine mit Docker herunterladen, um Container zu erstellen.<\/p>\n<p>Docker Hub bietet \u00f6ffentliche und private Image-Speicherorte. Die Suche und das Herunterladen von Images aus \u00f6ffentlichen Speichern ist f\u00fcr alle zug\u00e4nglich. Inhalte aus privaten Speichern erscheinen nicht in den Suchergebnissen. Nur Sie und Ihre Benutzer k\u00f6nnen auf diese Images zugreifen und Container daraus erstellen.<\/p>\n<h4>Wie funktioniert ein Container?<\/h4>\n<p>\nEin Container besteht aus einem Betriebssystem, Benutzerdaten und Metadaten. Wie wir wissen, wird jeder Container aus einem Image erstellt. Dieses Image sagt Docker, was sich im Container befindet, welchen Prozess zu starten ist, wenn der Container l\u00e4uft, und andere Konfigurationsdaten. Das Docker-Image ist nur lesezug\u00e4nglich. Wenn Docker einen Container startet, wird eine Schreib-\/Leseschicht \u00fcber dem Image erstellt (unter Verwendung eines Union-Filesystems, wie bereits erw\u00e4hnt), in der die Anwendung ausgef\u00fchrt werden kann.<\/p>\n<h4>Was passiert, wenn ein Container gestartet wird?<\/h4>\n<p>\nEntweder \u00fcber das Programm <code>docker<\/code>, oder \u00fcber die RESTful API, sagt der Docker-Client dem Docker-Daemon, dass der Container gestartet werden soll.<\/p>\n<p><code>$ sudo docker run -i -t ubuntu \/bin\/bash<br \/>\n<\/code><br \/>\nSchauen wir uns diesen Befehl an. Der Client wird mit dem Befehl gestartet <code>docker<\/code>, mit der Option <code>run<\/code>, die anzeigt, dass ein neuer Container gestartet wird. Die Mindestanforderungen zum Starten eines Containers sind die folgenden Attribute:<\/p>\n<ul>\n<li>welches Image f\u00fcr die Erstellung des Containers verwendet werden soll. In unserem Fall <code>ubuntu<\/code><\/li>\n<li>der Befehl, den Sie ausf\u00fchren m\u00f6chten, wenn der Container gestartet wird. In unserem Fall <code>\/bin\/bash<\/code><\/li>\n<\/ul>\n<p>Was geschieht unter der Haube, wenn wir diesen Befehl ausf\u00fchren?<\/p>\n<p>Docker f\u00fchrt der Reihe nach Folgendes aus:<\/p>\n<ul>\n<li><b>l\u00e4dt das Image ubuntu:<\/b> Docker pr\u00fcft, ob das Image <code>ubuntu<\/code> auf der lokalen Maschine vorhanden ist, und wenn nicht, wird es von <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>heruntergeladen. Ist das Image vorhanden, wird es verwendet, um den Container zu erstellen;<\/li>\n<li><b>erstellt einen Container:<\/b> nachdem das Image erhalten wurde, verwendet Docker es, um den Container zu erstellen;<\/li>\n<li><b>initialisiert das Dateisystem und bindet den schreibgesch\u00fctzten Layer ein:<\/b> der Container wird im Dateisystem erstellt, und der schreibgesch\u00fctzte Layer wird hinzugef\u00fcgt;<\/li>\n<li><b>initialisiert das Netzwerk\/den Bridge:<\/b> erstellt ein Netzwerk-Interface, das es Docker erm\u00f6glicht, mit der Host-Maschine zu kommunizieren;<\/li>\n<li><b>IP-Adresse einstellen:<\/b> findet und setzt die Adresse;<\/li>\n<li><b>startet den angegebenen Prozess:<\/b> startet Ihre Anwendung;<\/li>\n<li><b>verarbeitet und gibt die Ausgabe Ihrer Anwendung aus:<\/b> verbindet sich und protokolliert den Standard-Eingang, die Ausgabe und den Fehlerstrom Ihrer Anwendung, damit Sie verfolgen k\u00f6nnen, wie Ihre Anwendung funktioniert.<\/li>\n<\/ul>\n<p>\nJetzt haben Sie einen funktionierenden Container. Sie k\u00f6nnen Ihren Container verwalten und mit Ihrer Anwendung interagieren. Wenn Sie entscheiden, die Anwendung zu stoppen, entfernen Sie den Container.<\/p>\n<h3>Verwendete Technologien<\/h3>\n<p>\nDocker ist in Go geschrieben und nutzt einige Funktionen des Linux-Kernels, um die oben genannten Funktionen zu realisieren.<\/p>\n<h4>Namespaces<\/h4>\n<p>\nDocker verwendet Technologie <code>namespaces<\/code> um isolierte Arbeitsumgebungen zu schaffen, die wir Container nennen. Wenn wir einen Container starten, erstellt Docker eine Gruppe von Namespaces f\u00fcr diesen Container.<\/p>\n<p>Dies schafft eine isolierte Ebene, in der jeder Aspekt des Containers in seinem eigenen Namespace l\u00e4uft und keinen Zugriff auf das externe System hat.<\/p>\n<p>Eine Liste einiger Namespaces, die Docker verwendet:<\/p>\n<ul>\n<li><b>pid:<\/b> zur Isolierung von Prozessen;<\/li>\n<li><b>net:<\/b> zur Verwaltung von Netzwerk-Schnittstellen;<\/li>\n<li><b>ipc:<\/b> zur Verwaltung von IPC-Ressourcen. (IPC: Inter-Process Communication);<\/li>\n<li><b>mnt:<\/b> zur Verwaltung von Mount-Punkten;<\/li>\n<li><b>utc:<\/b> zur Isolierung des Kernels und zur Steuerung der Versionierung (UTC: Unix Timesharing System).<\/li>\n<\/ul>\n<h4>Control Groups<\/h4>\n<p>\nDocker verwendet ebenfalls Technologie <code>cgroups<\/code> oder Kontrollgruppen. Der Schl\u00fcssel zum Betrieb der Anwendung in Isolation besteht darin, der Anwendung nur die Ressourcen zur Verf\u00fcgung zu stellen, die Sie bereitstellen m\u00f6chten. Dies gew\u00e4hrleistet, dass die Container gut Nachbarn sind. Kontrollgruppen erm\u00f6glichen es, die verf\u00fcgbaren Ressourcen der Hardware zu trennen und, falls n\u00f6tig, Grenzen und Einschr\u00e4nkungen zu setzen. Zum Beispiel kann die m\u00f6gliche Menge an Speicher f\u00fcr einen Container begrenzt werden.<\/p>\n<h4>Union File System<\/h4>\n<p>\nUnion File System oder UnionFS ist ein Dateisystem, das funktioniert, indem es Schichten erstellt, wodurch es sehr leichtgewichtig und schnell ist. Docker verwendet UnionFS zur Erstellung von Bl\u00f6cken, aus denen der Container aufgebaut wird. Docker kann mehrere Varianten von UnionFS verwenden, einschlie\u00dflich: AUFS, btrfs, vfs und DeviceMapper.<\/p>\n<h4>Containerformate<\/h4>\n<p>\nDocker kombiniert diese Komponenten in einer H\u00fclle, die wir Containerformat nennen. Das standardm\u00e4\u00dfig verwendete Format hei\u00dft <code>libcontainer<\/code>. Docker unterst\u00fctzt auch das traditionelle Format von Containern in Linux \u00fcber <noindex><a rel=\"nofollow\" href=\"http:\/\/linuxcontainers.org\">LXC<\/a><\/noindex>. Zuk\u00fcnftig k\u00f6nnte Docker m\u00f6glicherweise auch andere Containerformate unterst\u00fctzen, beispielsweise durch Integration mit BSD Jails oder Solaris Zones.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/253877\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36772","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u044f Docker | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:13:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:44+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Docker verstehen | ProHoster","description":"Ich benutze seit mehreren Monaten Docker, um den Entwicklungs- und Lieferprozess von Webprojekten zu strukturieren. Ich empfehle den Lesern von \u201eHabr Habra\u201c die \u00dcbersetzung des einf\u00fchrenden Artikels \u00fcber Docker \u2013 \u201eDocker verstehen\u201c. Was ist Docker? Docker ist eine offene Plattform zur Entwicklung, Bereitstellung und Ausf\u00fchrung von Anwendungen. Docker wurde entwickelt, um Ihre Anwendungen schneller bereitzustellen. Mit Docker k\u00f6nnen Sie Ihre Anwendung von Ihrer Infrastruktur trennen und","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ponimaya-docker","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u044f Docker | ProHoster","og:description":"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ponimaya-docker","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:13:44+00:00","article:modified_time":"2019-10-31T19:13:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36772","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:47:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:39:22","updated":"2026-01-22 04:47:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/36772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=36772"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/36772\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=36772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=36772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=36772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}