Implementierung der Docker-Batch-Container-Orchestrierung

Implementierung der Docker-Batch-Container-Orchestrierung

Einführung

Der Dockerfile-Build-Ausführungsvorgang ist ein manueller Vorgang eines einzelnen Containers. Wenn eine Microservice-Architektur verwendet wird, müssen über 100 Container gestartet werden. Wie können die Abhängigkeiten zwischen ihnen aufrechterhalten werden?
Docker Compose wird verwendet, um Container einfach und effizient zu verwalten und mehrere Container zu definieren und auszuführen.

Drei Schritte:

  • Docker-Datei
  • Dienste und docker-compose.yml
  • Docker-Compose-Up - Entwicklerhandbuch für Windows

Erste Erfahrung

1.Docker-Datei

VON python:3.7-alpine
ARBEITSVERZEICHNIS /code
ENV FLASK_APP app.py
Umgebung FLASK_RUN_HOST 0.0.0.0
Führen Sie den Befehl apk add --no-cache gcc musl-dev linux-headers aus.
KOPIEREN requirements.txt requirements.txt
Führen Sie den Befehl „pip install -r requirements.txt“ aus.
KOPIEREN . .
CMD ["Flasche", "ausführen"]

2.Dienstleistung

Importzeit
Redis importieren
aus Flasche importieren Flasche
App = Flask(__name__)
Cache = Redis.Redis (Host = "Redis", Port = 6379)
auf Grund von get_hit_count():
  Wiederholungsversuche = 5
  während True:
    versuchen:
      returniere cache.incr('Treffer')
    außer redis.exceptions.ConnectionError als exc:
      wenn Wiederholungen == 0:
        erhöhen exc
      Wiederholungen -= 1
      Zeit.Schlaf(0,5)
@app.route('/')
def hallo():
  Anzahl = Trefferanzahl abrufen()
  return 'Hallo Welt! Ich wurde {} Mal gesehen.\n'.format(Anzahl)

docker-compose.yml

Version: '3'
Leistungen:
Webseite:
 bauen: .
 Häfen:
- "5000:5000"
 Bände:
- .:/Code
 -logvolume01:/var/log
 Links:
- Redis
Redis:
 Bild: Redis
Bände:
logvolume01: {}
Docker-Compose-Up - Entwicklerhandbuch für Windows
Compose-demo_web_1 wird gestartet ... fertig
Compose-demo_redis_1 wird gestartet ... fertig
Anhängen an compose-demo_redis_1, compose-demo_web_1
redis_1 | 1:C 12. September 2020 07:34:09.654 # oO0OoO0OoO0Oo Redis wird gestartet oO0OoO0OoO0Oo
redis_1 | 1:C 12. September 2020 07:34:09.655 # Redis-Version=6.0.7, Bits=64, Commit=00000000, geändert=0, PID=1, gerade gestartet
redis_1 | 1:C 12. Sep. 2020 07:34:09.655 # Warnung: Keine Konfigurationsdatei angegeben, verwende die Standardkonfiguration. Um eine Konfigurationsdatei anzugeben, verwende redis-server /path/to/redis.conf
redis_1 | 1:M 12. September 2020 07:34:09.657 * Ausführungsmodus=Standalone, Port=6379.
redis_1 | 1:M 12. Sep. 2020 07:34:09.657 # WARNUNG: Die TCP-Backlog-Einstellung von 511 kann nicht erzwungen werden, da /proc/sys/net/core/somaxconn auf den niedrigeren Wert von 128 eingestellt ist.
redis_1 | 1:M 12. September 2020 07:34:09.657 # Server initialisiert
redis_1 | 1:M 12. Sep. 2020 07:34:09.658 # WARNUNG overcommit_memory ist auf 0 gesetzt! Das Speichern im Hintergrund kann bei zu wenig Arbeitsspeicher fehlschlagen. Um dieses Problem zu beheben, fügen Sie 'vm.overcommit_memory = 1' zu /etc/sysctl.conf hinzu und starten Sie dann neu oder führen Sie den Befehl 'sysctl vm.overcommit_memory=1' aus, damit dies wirksam wird.
redis_1 | 1:M 12. September 2020 07:34:09.658 * RDB wird geladen, erstellt von Version 6.0.7
redis_1 | 1:M 12. September 2020 07:34:09.658 * RDB-Alter 156 Sekunden
redis_1 | 1:M 12. September 2020 07:34:09.658 * RDB-Speichernutzung bei Erstellung 0,77 Mb
redis_1 | 1:M 12. September 2020 07:34:09.658 * DB von Festplatte geladen: 0,000 Sekunden
web_1 | * Bereitstellung der Flask-App „app.py“
web_1 | * Umgebung: Produktion
web_1 | WARNUNG: Dies ist ein Entwicklungsserver. Verwenden Sie ihn nicht in einer Produktionsbereitstellung.
web_1 | Verwenden Sie stattdessen einen Produktions-WSGI-Server.
web_1 | * Debug-Modus: aus
YML-Datei rulesversion: "1.0" #versionservices: #service listservice1:
    #Dienstkonfiguration container_name: #Containername depends_on: #Abhängigkeitsliste - depend1
    -abhängig2
    Bilder: #Spiegelbild1
    - Bild2
    build:. #Verzeichnis erstellen Netzwerk: #Netzwerk......
  Dienst2:test2
    ......
volumnes: #Verzeichnisliste einbinden networks: #Netzwerkliste configs: #Andere Konfigurationen

Dies ist das Ende dieses Artikels über die Implementierung der Docker-Batchcontainer-Orchestrierung. Weitere relevante Inhalte zur Docker-Batchcontainer-Orchestrierung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Implementierung der Docker Compose-Container-Orchestrierung in IDEA
  • Verwenden von Docker-Datenvolumes und Container-Orchestrierung
  • Docker-Container-Orchestrierungstool Compose (Erste Schritte)
  • Docker-Serie: Verwenden von Docker Compose zum Orchestrieren von Containern
  • Erstellen und Verwenden von Docker-Datenvolumencontainern
  • Detaillierte Erklärung der Datenmengen von Docker-Containern
  • So generieren Sie ein Docker-Image und schließen die Containerbereitstellung in einem Spring-Boot-Projekt ab
  • So installieren Sie den Kibana-Tokenizer im Docker-Container
  • Analyse des Implementierungsprozesses der Docker-Container-Orchestrierung

<<:  MySQL: Praktische Erfahrung mit der Verwendung der Insert-Anweisung

>>:  Die Scroll-Ansicht des WeChat-Applets realisiert die Verknüpfung nach links und rechts

Artikel empfehlen

Verschiedene korrekte Haltungen zur Verwendung von Umgebungsvariablen in Webpack

Inhaltsverzeichnis Schreiben Sie vor Geschäftscod...

jQuery implementiert einen prozentualen Fortschrittsbalken

In diesem Artikel wird der spezifische Code von j...

Alibaba Cloud Centos7.3-Installation, MySQL5.7.18 RPM-Installations-Tutorial

Deinstallieren Sie MariaDB CentOS7 installiert st...

Detaillierte Erklärung der MySQL-Injektion ohne Kenntnis des Spaltennamens

Vorwort Ich habe in letzter Zeit das Gefühl, dass...

Details zur Verwendung von Bimface in Vue

Inhaltsverzeichnis 1. Installieren Sie das Vue-Ge...

So konfigurieren Sie MySQL8 in Nacos

1. Erstellen Sie die MySQL-Datenbank nacos_config...

Beispiel für eine automatische Importmethode für das Vue3.0-Routing

1. Voraussetzungen Wir verwenden zum Importieren ...

Detaillierte Erläuterung der Vue Simple Notepad-Entwicklung

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung der Tomcat-Verzeichnisstruktur

Inhaltsverzeichnis Verzeichnisstruktur bin-Verzei...

So löschen Sie Ordner, Dateien und Dekomprimierungsbefehle auf Linux-Servern

1. Ordner löschen Beispiel: rm -rf /usr/java Das ...