Einführung in Docker. Entwicklung eines einfachen Docker -Images für Ihren eigenen Server.
Die russische Version der Aufgabe finden Sie im Repository.

Planet Erde, heute irgendwo mitten im Meer.
Sie haben sich nie gerne bewegen. Viel Aufhebens, wenig Action. Aber Sie haben es geschafft, einen großartigen Job in einer anderen Stadt zu finden, um sich in die DevOps -Welt einzutauchen. Und Sie sind nicht derjenige, der ein wenig Ärger Ihre Pläne ruinieren lässt.
Aus Ihrem Kabinenfenster hören Sie den Klang der Wellen, das Schiff rockt friedlich auf sie und erinnert sich an Ihren Lieblingsroman über das Meer - "Moby Dick". Obwohl die Handlung alles andere als unkompliziert ist, haben Sie wie alle anderen dieses Buch hauptsächlich mit Moby Dick selbst - dem weißen Wal, mit vielen lyrischen Ausschlägen und philosophischen Überlegungen.
"Hmm ... weißer Wal ..." Hier erinnern Sie sich daran, dass Sie während der langen Reise am Dock arbeiten wollten.
Nginx (ausgesprochen "Engine-X") ist ein Open-Source-Reverse-Proxy-Server für HTTP, HTTPS usw. Nginx wird auch als Lastausgleich, Webserver und für HTTP-Caching verwendet. Das Nginx -Projekt konzentriert sich auf hohe Parallelität, hohe Leistung und geringe Speicherverwendung.
Nginx hat einen Hauptprozess und mehrere Arbeiterprozesse. Die Hauptaufgabe des Hauptprozesses besteht darin, die Konfiguration zu lesen und zu überprüfen und die Arbeitsprozesse zu verwalten. Die Arbeitsprozesse führen die tatsächliche Bearbeitung der Anfragen durch.
Wie Nginx und seine Module funktionieren, wird in der Konfigurationsdatei definiert. Standardmäßig wird die Konfigurationsdatei nginx.conf bezeichnet
Ein Container ist eine neue "ausführbare Datei", die alle Abhängigkeiten enthält, die die Produktbedürfnisse haben.
Der Hauptvorteil der Containerisierung ist die Isolierung von Abhängigkeiten und ein einzelner einfacher Software-Startpunkt.
Grundlegende Begriffe:
Docker ist eine Plattform, auf der Anwendungen in Containern entwickelt, bereitgestellt und ausgeführt werden sollen. Docker ist das "De-facto" -Stand-Containerisierungsinstrument in der Branche, aber nicht das erste oder letzte unter Containerisierungstechnologien.
Die Vorläufer von Docker -Containern waren virtuelle Maschinen. Eine virtuelle Maschine isoliert wie ein Container die Anwendung und ihre Abhängigkeiten von außen. Docker -Container haben jedoch Vorteile gegenüber virtuellen Maschinen. Zum Beispiel sind sie sehr einfach zu portieren, weniger Ressourcen zu verbrauchen und schneller zu beginnen und zu laufen.
Ein Docker -Bild besteht aus Schichten. Jede Schicht beschreibt eine gewisse Änderung, die an den Daten im laufenden Container durchgeführt werden soll. Die Struktur der Verbindungen zwischen Schichten ist hierarchisch. Es gibt eine Grundschicht, auf der die anderen Schichten "überlagert" sind. Die Dockerfile wird verwendet, um ein Bild zu erstellen. Bei jeder Anweisung handelt es sich um eine neue Ebene.
Dockle ist ein Containerbild -Sicherheitskontrollwerkzeug, mit dem Schwachstellen ermittelt werden können.
Schlüsselmerkmale und Vorteile von Dockle :
Docker Compose ist ein Werkzeug zum Umgang mit Aufgaben im Zusammenhang mit der Bereitstellung von Projekten. Docker Compose kann hilfreich sein, wenn mehrere Dienste verwendet werden, um das Projekt am Laufen zu halten.
Docker Compose wird verwendet, um mehrere Container gleichzeitig zu verwalten, die Teil einer Anwendung sind. Dieses Tool bietet die gleichen Funktionen wie Docker, ermöglicht es jedoch, mit komplexeren verteilten Anwendungen, z. B. Microservices, zu arbeiten.
Infolge der Arbeit sollten Sie einen Bericht über die ersten beiden Aufgaben vorlegen. Jeder Teil der Aufgabe beschreibt, was dem Bericht hinzugefügt werden soll, sobald er abgeschlossen ist. Dies können Antworten auf Fragen, Screenshots usw. sein
Als Ergebnis der dritten Aufgabe sollten Sie Quelldateien für das Ausführen des Webservers bereitstellen.
Infolge der vierten und fünften Aufgaben sollten Sie DockerFiles zur Verfügung stellen.
Aufgrund der sechsten Aufgabe sollten Sie eine Docker-compose.yml- Datei und die für die Ausführung benötigten Dockerfiles bereitstellen (falls dies nicht früher angegeben).
Als endgültiges Ziel Ihrer kleinen Praxis haben Sie sofort ausgewählt, ein Docker-Bild für Ihren eigenen Webserver zu schreiben. Zuerst müssen Sie sich mit einem vorgefertigten Docker-Image für den Server befassen. Sie haben einen ziemlich einfachen Nginx ausgewählt.
== Task ==
docker pull herunter. docker images . docker run -d [image_id|repository] . docker ps ausgeführt wird. docker inspect [container_id|container_name] . docker stop [container_id|container_name] . docker ps gestoppt ist. docker restart [container_id|container_name] . Hinweis: Laden Sie keine schweren Dateien (> 10 MB) auf Git hoch.
Docker -Bild und -Container sind bereit. Jetzt können wir uns mit der Nginx -Konfiguration und dem Anzeige -Seitenstatus befassen.
== Task ==
docker cp in das Docker -Bild. docker rmi [image_id|repository] ohne den Container zuerst zu entfernen. Es ist Zeit, dem Docker eine kleine Pause einzulegen, um sich auf die letzte Stufe vorzubereiten. Es ist Zeit, Ihren eigenen Server zu schreiben.
== Task ==
Hello World! . Jetzt ist alles fertig. Sie können das Docker -Bild für den erstellten Server schreiben.
== Task ==
Vermeiden Sie beim Schreiben eines Docker -Bildes mehrere Anrufe von Ausführungsanweisungen
Nginx kann im Docker selbst installiert werden, oder Sie können ein fertiges Bild mit Nginx als Basis verwenden.
docker build und geben Sie den Namen und das Tag an. docker images , dass alles richtig erstellt wird. *Wenn alles richtig gemacht wird, sollte die Konfigurationsdatei im Docker -Bild nach dem Speichern der Datei und dem Neustart des Containers ohne zusätzliche Schritte aktualisiert werden
Sobald Sie das Bild geschrieben haben, ist es nie eine schlechte Idee, es aus Sicherheit zu überprüfen.
== Task ==
dockle [image_id|repository] . Dort haben Sie Ihr Aufwärmen beendet. Warten Sie jedoch eine Minute ... Warum nicht versuchen, ein Projekt bereitzustellen, das aus mehreren Docker -Bildern gleichzeitig besteht?
== Task ==
docker-compose build und docker-compose up . Tippen Sie hier , um Ihr Feedback zum Projekt zu hinterlassen . Das Produktteam versucht wirklich, Ihre Bildungserfahrung zu verbessern.