1. Einleitung Container nutzen einen Sandbox-Mechanismus, um sich gegenseitig zu isolieren. Der Vorteil besteht darin, dass die im Container bereitgestellten Anwendungen sich nicht gegenseitig beeinflussen und unabhängig voneinander ausgeführt werden, was für mehr Sicherheit sorgt. Dieser Artikel stellt hauptsächlich das Ausführen von Python-Anwendungen (Django) in Docker-Containern, das Schreiben von Docker-Dateien zur Automatisierung der Image-Erstellung und das Docker-Artefakt Compose vor. 2. Schreiben Sie die Dockerfile-Datei Das von der offiziellen Website heruntergeladene Python-Image ist relativ optimiert und webanwendungsbezogene Abhängigkeiten müssen weiterhin selbst installiert werden. Durch das Schreiben einer Docker-Datei können Sie den Prozess der Image-Erstellung automatisieren. Nachfolgend sind einige Beispiele aufgeführt: VON python:3.6.4 RUN mkdir /code \ &&apt-get update \ &&apt-get -y installiere freetds-dev \ &&apt-get -y installiere unixodbc-dev App/Code kopieren KOPIEREN Sie requirements.txt /code Führen Sie den Befehl „pip install -r /code/requirements.txt -i https://pypi.douban.com/simple“ aus. ARBEITSVERZEICHNIS /code CMD ["/bin/bash","run.sh"] FROM: Ein sehr wichtiger Befehl im Dockerfile, der verwendet wird, um ein Basis-Image für den Build-Prozess anzugeben. Beispielsweise wird oben python3.6.4 als Basisimage angegeben, und alle nachfolgenden Vorgänge werden basierend auf diesem Image angepasst. Wenn es nicht vorhanden ist, wird es von der offiziellen Website heruntergeladen. FROM muss der erste Befehl in einer Docker-Datei sein. RUN: Der Kernteil des Dockerfile-Ausführungsbefehls, der die Parameter während des Image-Erstellungsprozesses ausführt. KOPIEREN: Dateien kopieren. COPY <Quellpfad> <Zielpfad> WORKDIR: Arbeitsverzeichnis. Wenn es nicht existiert, wird es automatisch für Sie erstellt. CMD: Container-Startbefehl. Docker ist keine virtuelle Maschine, aber ein Container ist ein Prozess. Da es sich um einen Prozess handelt, müssen Sie beim Starten des Containers das auszuführende Programm und die Parameter angeben. Mit der CMD-Anweisung wird der Startbefehl des Standard-Containerhauptprozesses angegeben. Wenn „Docker Run“ einen Befehlsparameter angibt, funktioniert der Befehl hier nicht. Beispiel: „docker run -it -name redis docker.io/redis /bin/bash“. Beim Starten des Containers wird der Befehl im Docker-File nicht ausgeführt, weil „docker run“ bereits den Befehlsparameter „/bin/bash“ angegeben hat. 3. Erstellen Sie ein Image Docker Build [OPTIONEN] Kontextpfad | URL
Der Befehl „docker bulid -t webtest.“ erstellt ein Image mit dem Namen „webtest“ und gibt nach Abschluss des Builds die Image-ID 1dfa2905efac zurück. [root@CentOS webtest]# ls App Dockerfile Anforderungen.txt run.sh [root@CentOS-Webtest]# Docker Build -t Webtest. ... ... ... Zwischenbehälter ausbauen 9c510e88e659 Schritt 6/6: CMD /bin/bash run.sh ---> Wird ausgeführt in 0bd29255c648 ---> 1dfa2905efac Zwischenbehälter entfernen 0bd29255c648 Erfolgreich erstellt 1dfa2905efac
run.sh ist das Shell-Skript, das beim Ausführen des Containers aufgerufen werden muss python /code/app/manage.py runserver 0.0.0.0:8000 Starten Sie den Container und führen Sie das gerade erstellte Image aus. docker run -it -p 6500:8000 -v /home/code/webtest:/code --name web --restart always --privileged=true webtest [root@CentOS-Webtest]# docker run -it -p 6500:8000 -v /home/code/webtest:/code --name web --restart always --privileged=true webtest Systemprüfungen werden durchgeführt ... Bei der Systemprüfung wurden keine Probleme festgestellt (0 stummgeschaltet). Sie haben 15 nicht angewendete Migrationen. Ihr Projekt funktioniert möglicherweise erst richtig, wenn Sie die Migrationen für die App(s) anwenden: Admin, Authentifizierung, Inhaltstypen, Sitzungen. Führen Sie „python manage.py migrate“ aus, um sie anzuwenden. 09. August 2018 - 09:56:51 Django Version 2.1, mit den Einstellungen „ShiHangTool.settings“ Entwicklungsserver wird unter http://0.0.0.0:8000/ gestartet. Beenden Sie den Server mit STRG+C. -p: Ordnen Sie den Port 8000 des Containers dem Port 6500 des Hosts zu. -v: Das Hostverzeichnis /home/code/webtest wird dem Containerverzeichnis /code zugeordnet. --name: Nennen Sie den Container „Web“, „Webtest“ ist das Image, das wir gerade erstellt haben --restart: always Der Container wird immer neu gestartet, wenn er beendet wird --privileged=true: Zum Ausführen von Dateien im Container erforderliche Berechtigungen Geben Sie ip:6500/Home/OrderSettle-K8S/ ein. Erfolgreich ausgeführt! 5. Verfassen Finden Sie die oben genannten Vorgänge zu kompliziert? Es wäre toll, wenn sie automatisch durchgeführt werden könnten. Keine Sorge, compose kann Ihnen helfen 1. Einleitung: Compose ist ein offizielles Open-Source-Projekt von Docker, das zur schnellen Orchestrierung von Docker-Clustern verwendet wird. Compose definiert und führt einen oder mehrere Container über eine docker-compose.yml-Datei aus. Es handelt sich um eine verbesserte Version von Abb. 2. Installation: Compose ist in Python geschrieben und ruft die von Docker bereitgestellte API auf, um den Container zu verwalten. kann also über das Python-Verwaltungstool pip installiert werden pip installieren docker-compose 3. Schreiben Sie die Datei docker-compose.yml Dies ist das Hauptvorlagenformat von docker-compose.yml Version: '3' Leistungen: web1: bauen: . Bild: web1 Häfen: - "7500:8000" Bände: - /home/code/webtest:/code privilegiert: wahr Neustart: immer 4. Führen Sie das Compose-Projekt aus Legen Sie Dockerfile, requirements.txt, docker-compose.yml und den App-Ordner in dasselbe Verzeichnis und führen Sie den Befehl docker-compose up aus. [root@CentOS-Webtest]# Docker-Compose Up Netzwerk „webtest_default“ mit dem Standardtreiber erstellen Erstellen von web1 Schritt 1/6: VON python3.6.4-dev --->ca46b1ed99ab Schritt 2/6: App /Code KOPIEREN ---> f59b9540f8ab Zwischenbehälter entfernen e987c66b51f5 Schritt 3/6: KOPIEREN Sie requirements.txt /code ---> 2095b64882ac Zwischenbehälter ausbauen e3099b386727 ... ... ... Nach Abschluss des Laufs überprüft Docker PS den gerade gestarteten Container Web1 und stellt fest, dass dieser bereits ausgeführt wird. [root@CentOS ~]# docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN eeab6b5a993b web1 "/bin/bash run.sh" Vor etwa einer Minute Aktiv seit 59 Sekunden 0.0.0.0:7500->8000/tcp webtest_web1_1 5fb51ce5a51c Webtest "/bin/bash run.sh" vor 23 Stunden Aktiv Ungefähr eine Stunde 0.0.0.0:6500->8000/tcp Web 5. Zusammenfassung Compose konfiguriert die beiden Schritte zum Erstellen eines Images und Ausführen eines Containers in einer YML-Datei, um eine automatisierte Bereitstellung zu erreichen. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: So verwenden Sie Nginx zur Verwaltung einer domänenübergreifenden Vue-Entwicklungsumgebung
>>: Lösung für das Fehlen der my.ini-Datei in MySQL 5.7
Inhaltsverzeichnis Überblick So teilen Sie Daten ...
Die Testumgebung ist mit MariaDB 5.7 eingerichtet...
nginx Nginx (Engine x) ist ein leistungsstarker H...
Was ist der Eingabetyp="Datei"? Ich glau...
Inhaltsverzeichnis 1. Grundlage des Responsive-Pr...
Großes Problem: Löschen Sie nicht einfach die Pyt...
<br /> Die Zugriffsgeschwindigkeit einer Web...
Dieser Artikel beschreibt die MySQL-Benutzerverwa...
1 Schritte zur Systeminstallation Betriebssystemv...
Inhaltsverzeichnis Herkunft Umweltinformationen F...
In diesem Artikel wird der spezifische Code der o...
Inhaltsverzeichnis 1. Verwenden Sie die UUID-Funk...
Inhaltsverzeichnis Voraussetzungen DNS-Domänennam...
Inhaltsverzeichnis Übergeordnete Komponente kommu...
Das Inhaltsattribut wird im Allgemeinen in den Ps...