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

So installieren Sie die MySQL 8.0-Datenbank auf dem M1-Chip (Bild und Text)

1. Herunterladen Zunächst möchte ich einen inländ...

Docker stellt eine Verbindung zum Host-Mysql-Vorgang her

Heute muss das Unternehmensprojekt Docker konfigu...

CSS-Schreibformat, detaillierte Erklärung der Grundstruktur einer mobilen Seite

1. CSS-Schreibformat 1. Inline-Stile Sie können C...

Zusammenfassung von 6 Methoden zur Anzeige von Linux-Protokollen

Als Backend-Programmierer haben Sie an vielen Ste...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.23

Dieser Artikel zeichnet den detaillierten Install...

Eine Methode zum Erstellen von Karussellbildern mit CSS3

Diashows sieht man häufig auf Webseiten. Sie enth...

Einfache Prinzipien für die Gestaltung des Webseiten-Layouts

Dieser Artikel fasst einige einfache Prinzipien d...

SQL-Gruppierung zum Entfernen von Duplikaten und Sortieren nach anderen Feldern

brauchen: Identische Elemente eines Feldes zusamm...

So verwenden Sie Indizes zur Optimierung von MySQL ORDER BY-Anweisungen

Tabelle erstellen und Index erstellen Tabelle tbl...

So legen Sie den Produktionsumgebungsmodus process.env.NODE_ENV fest

Bevor ich anfange, möchte ich betonen, dass proce...

CnBlogs - Teilen im benutzerdefinierten Blogstil

Nachdem ich die halbe Nacht daran gearbeitet hatt...

Spezifische Verwendung von MySQL-Operatoren (und, oder, in, nicht)

Inhaltsverzeichnis 1. Einleitung 2. Haupttext 2.1...

Detaillierte Erläuterung der Kernkonzepte und Fälle von webpack-dev-server

Kernkonzepte von webpack-dev-server Webpacks Cont...