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

6 Möglichkeiten zur eleganten Handhabung von Objekten in JavaScript

Inhaltsverzeichnis Vorwort 1. Objekt.freeze() 2. ...

Zusammenfassung aller HTML-Interviewfragen

1. Die Rolle des Doctypes, der Unterschied zwisch...

So installieren Sie Docker auf Ubuntu20.04 LTS

Null: Alte Version deinstallieren Ältere Versione...

Einige Indikatoren für exzellentes Web-Frontend-Design

Die Barrierefreiheit von Webseiten scheint etwas z...

Detailliertes Tutorial zum Löschen von Linux-Benutzern mit dem Befehl userdel

Was ist Serdel userdel ist ein Low-Level-Tool zum...

HTML-Tabellen-Tag-Tutorial (35): spaltenübergreifendes Attribut COLSPAN

In einer komplexen Tabellenstruktur erstrecken si...

So legen Sie eine Verzeichnis-Whitelist und eine IP-Whitelist in Nginx fest

1. Legen Sie eine Verzeichnis-Whitelist fest: Leg...

Einführung in die Cloud-native-Technologie Kubernetes (K8S)

Inhaltsverzeichnis 01 Was ist Kubernetes? 02 Der ...

Über visuelles Design und Interaktionsdesign

<br />Im gesamten Produktdesignprozess liege...