Teil 1: Docker
Teil 2: Einführung in Docker-Compose
Es wird die Beschreibung über sein. (Der zweite Teil ist hier)Die Befehlsnotation basiert auf der Annahme, dass "MacOS" als Host-PC verwendet wird.
In diesem Artikel erstellen wir einen lokalen PC als Docker-Host-PC. In diesem Fall sind Vorbereitungen zum Ausführen von Docker erforderlich. Es gibt verschiedene Methoden, aber für "MacOS" ist die Installation von "Docker für Mac" in Brew der schnellste Weg.
Terminal
brew cask install docker
Dadurch wird die Anwendung installiert. Starten Sie daher Docker.app
lokal. Wenn oben rechts ein Symbol wie ein Wal angezeigt wird und wie unten gezeigt ausgeführt wird, ist es vollständig.
Siehe Github Repository.
Es gibt zwei wesentliche Änderungen gegenüber Schritt 1 bei der Erstellung des Docker-Containers.
--Erstellen Sie neue Docker-Dateien für Webserver und App-Server --Erstellen Sie ein neues Makefile mit dem Startbefehl
Von diesen vereinfacht das zweite Makefile nur die Eingabe des Docker-Befehls, und die wesentliche Ergänzung ist das erste Dockerfile. Ich möchte einen Blick auf den Inhalt jeder Docker-Datei werfen. (Die Docker-Datei selbst wird später beschrieben.)
Dockerfile
#Geben Sie das Basisbild an. In diesem Fall wird bis zur Version ein bestimmtes Tag angegeben.
FROM nginx:1.17.6-alpine
#Host-PC-Konfigurationsdatei(config/nginx.conf)In das oben erstellte Verzeichnis kopieren und senden
RUN mkdir -p /etc/nginx
COPY config/nginx.conf /etc/nginx/nginx.conf
Wenn Sie nur nginx verwenden möchten, können Sie einfach das auf Docker Hub
veröffentlichte offizielle nginx-Image abrufen. Dieses Mal möchte ich die zur Hand erstellte Nginx-Einstellungsdatei lesen und starten, also mache ich die folgende Arbeit.
Dockerfile
#Dieses Mal basiert es auf einem Debian-basierten Python-Image
FROM python:3.8-slim-buster
#Übertragung der Konfigurationsdatei(Ich kann mir keinen geeigneten Ort vorstellen/Direkt unter der App)
RUN mkdir -p /app/config
COPY requirements.txt /app/requirements.txt
COPY config/gunicorn_settings.py /app/config/gunicorn_settings.py
COPY flask_app.py /app/flask_app.py
#Paketinstallation
RUN pip install -r /app/requirements.txt
EXPOSE 9876
WORKDIR /app
#Befehl beim Ausführen von run
# ENTRYPOINT->Mit CMD kann CMD zum Zeitpunkt der Ausführung mit dem Argument überschrieben werden
ENTRYPOINT [ "gunicorn", "flask_app:app" ]
CMD [ "-c", "/app/config/gunicorn_settings.py" ]
Sie können nur mit dem Basis-Image von os beginnen und Python usw. installieren. Da jedoch das offizielle Image von Python veröffentlicht wurde, werden wir diesmal darauf basierend beginnen. Bis zu "Paketinstallation" ist fast das gleiche wie der Webserver, aber darunter ist eine Beschreibung, die der Webserver nicht hatte. Ich mache folgendes.
/ app
gunicorn flask_app: app -c / app / config / gunicorn_settings.py
aus.About Docker
Ich denke, es gibt einige Dinge, aber hier sind zwei der Vorteile, die ich fühle.
In der Vergangenheit musste der Entwickler bei der Entwicklung eines Teams eine Entwicklungsumgebung auf jedem Computer vorbereiten und dann mit der Entwicklung beginnen. Möglicherweise gibt es ein Dokument, das die Prozedur zeigt, aber in Wirklichkeit kann es mehr kosten, da die Umgebung aufgrund von unvollständigen Dokumenten oder Tool-Updates nicht ordnungsgemäß erstellt werden kann. Darüber hinaus besteht das Risiko, dass jeder Einzelne seine Sprache verbessert und subtile Unterschiede verursacht. Wenn Sie dagegen den zuvor vorbereiteten Docker-Container verwenden,
--Umwelt kann mit einer kleinen Anzahl von Befehlen erstellt werden (Docker Run
)
Davon können Sie profitieren.
Nachdem der Betrieb in der Cloud mittlerweile an der Tagesordnung ist, sind viele Tools zur Container-Orchestrierung mit GKE usw. auf dem Markt. Da es sich nur um eine Container-Orchestrierung handelt, bedeutet dies, dass die Anwendung auch in der Produktionsumgebung tatsächlich auf dem Container ausgeführt wird. Natürlich müssen Umgebungsvariablen und Endpunkte zwischen Entwicklung, Staging und Produktion geändert werden, aber es kann auch von der Orchestrierungsseite übernommen werden, und auf jeden Fall ** Der Container, der in der Entwicklungsumgebung funktioniert hat, kann fast so verwendet werden, wie er in der Produktionsumgebung ist. Es wird betriebsbereit sein **.
Erstellen Sie zuerst ein Image (= build) und erstellen und starten Sie dann einen Container, der auf diesem Image basiert. Es ist kein gutes Beispiel, aber wenn Sie es durch ein PC-Spiel ersetzen
Ein Dienst, mit dem Sie von Ihnen erstellte Containerbilder hochladen, veröffentlichen und freigeben können. Kurz gesagt, es ist wie * Githubs Docker Limited Edition *. Die veröffentlichten Bilder können kostenlos heruntergeladen und verwendet werden. Wählen Sie beim Erstellen Ihres eigenen benutzerdefinierten Images das Basis-Image aus den in Docker Hub registrierten aus.
Viele Bilder von Freiwilligen sind auch in Docker Hub registriert. Unter diesen sollte das Basisbild mit dem Tag "Docker Official Images" ausgewählt werden. Kurz gesagt, es ist ** weil es zuverlässig ist **, aber hier sind ein paar Bulletins.
In dieser Datei werden Anweisungen beschrieben, mit denen eine Reihe von Vorgängen ausgeführt werden können, z. B. das Image, das die Basis des zu erstellenden Containers bildet, die Installation der Anwendung und die Vorbereitung zum Starten der Anwendung.
Weitere Informationen zur Beschreibung der Docker-Datei finden Sie unter hier.
Recommended Posts