Heim >Betrieb und Instandhaltung >Docker >Konzentrieren Sie sich auf die Verwendung verschiedener Verzeichnisse im Docker-Dienst

Konzentrieren Sie sich auf die Verwendung verschiedener Verzeichnisse im Docker-Dienst

PHPz
PHPzOriginal
2023-04-19 15:26:53777Durchsuche

Docker ist eine sehr beliebte Containerisierungstechnologie, mit der Anwendungen schnell und effizient erstellt, bereitgestellt und ausgeführt werden können. Docker Service ist einer der am häufigsten verwendeten Mechanismen für die Docker-Clusterverwaltung. Mithilfe des Docker-Dienstes können Benutzer mehrere Docker-Container zu einem Dienst kombinieren, um hohe Verfügbarkeit, Lastausgleich und andere Zwecke zu erreichen. Dieser Artikel konzentriert sich auf die Verwendung verschiedener Verzeichnisse im Docker Service.

Was ist Docker-Service?

Der Docker-Dienst ist einer der Mechanismen für die Docker-Cluster-Verwaltung. Er kann mehrere Docker-Container in einem Dienst kombinieren. Docker Service implementiert Funktionen wie Hochverfügbarkeit, Lastausgleich und automatische Erweiterung, die Benutzern bei der Optimierung von Diensten und Anwendungen helfen können.

Docker Service unterstützt verschiedene Bereitstellungsstrategien, z. B. Replikat und Global. Bei Verwendung der Replikatrichtlinie können Benutzer die Anzahl der zu startenden Container definieren, und Docker Engine stellt automatisch Containerinstanzen im gesamten Cluster bereit und verwaltet sie. Bei Verwendung der globalen Strategie startet Docker Engine eine Kopie des Containers und stellt sie auf jedem Knoten im Cluster bereit.

Vorteile der Verwendung des Docker-Dienstes

Die Verwendung des Docker-Dienstes kann viele Vorteile mit sich bringen, hier sind einige der wichtigsten:

  • Hohe Verfügbarkeit: Der Docker-Dienst kann problemlos eine hohe Verfügbarkeit von Containern erreichen, selbst wenn ein Knoten ausfällt. Dies ist auch automatisch möglich Starten Sie neue Containerinstanzen auf anderen Knoten über die automatische Ausgleichsfunktion des Containers.
  • Lastausgleich: Mithilfe des Docker-Dienstes kann problemlos ein Lastausgleich erreicht werden, sodass die Anwendung des Benutzers immer im besten Zustand ist, ohne auf Lastausgleichsprobleme achten zu müssen.
  • Automatische Erweiterung: Docker Service unterstützt die automatische Erweiterung. Benutzer müssen nur die Anzahl der Container anpassen, um eine Anwendungserweiterung zu erreichen.

Wie verwendet Docker Service unterschiedliche Verzeichnisse?

Docker Service verwendet standardmäßig das Verzeichnis, in dem sich die Docker-Datei befindet, als Build-Kontext des Container-Images. Wenn wir jedoch unterschiedliche Images in unterschiedlichen Verzeichnissen erstellen müssen, müssen wir unterschiedliche Build-Kontexte verwenden.

Im Folgenden wird erläutert, wie Sie verschiedene Verzeichnisse zum Erstellen von Docker-Images verwenden und den Docker-Dienst zum Bereitstellen von Anwendungen verwenden.

  1. Erstellen Sie die Verzeichnisstruktur

Zuerst erstellen wir die folgende Verzeichnisstruktur:

.
├── dockerfiles
│   ├── web1
│   │   ├── Dockerfile
│   │   └── index.html
│   └── web2
│       ├── Dockerfile
│       └── index.html
├── docker-compose.yml
└── services.yml

Im Dockerfiles-Verzeichnis haben wir zwei Verzeichnisse erstellt, web1 bzw. web2. Jedes Verzeichnis enthält eine Dockerfile-Datei und eine index.html-Datei. Unter anderem wird die Dockerfile-Datei zum Erstellen des Docker-Images verwendet, und die Datei index.html wird zum Testen verwendet, ob der Container normal ausgeführt wird.

In der Datei „services.yml“ definieren wir einen Dienst namens „web“ für die Bereitstellung von zwei Containern, „web1“ und „web2“.

  1. Docker-Dateien schreiben

In unserem Beispiel haben wir jeweils eine Docker-Datei für web1 und web2 erstellt. Sie lauten wie folgt:

Dockerfile-Datei im Web1-Verzeichnis:

FROM nginx
COPY index.html /usr/share/nginx/html

Dockerfile-Datei im Web2-Verzeichnis:

FROM nginx
WORKDIR /usr/share/nginx/html
COPY index.html .

Hier verwenden wir verschiedene Dockerfile-Dateien und verwenden in jeder Datei unterschiedliche Build-Kontexte. Die Docker-Datei von web1 verwendet die COPY-Direktive, die die Datei index.html aus dem angegebenen Build-Kontext in den Container kopiert. Die web2-Dockerdatei verwendet die Anweisung WORKDIR und die Anweisung COPY, die das Arbeitsverzeichnis auf /usr/share/nginx/html setzt und die Datei index.html aus dem Build-Kontext in den Container kopiert.

  1. Schreiben der Datei „docker-compose.yml“

Wir verwenden weiterhin die Datei „docker-compose.yml“, um unsere Dienste zu definieren. Der Inhalt der Datei lautet wie folgt:

version: '3.7'

services:
  web1:
    build:
      context: ./dockerfiles/web1
    image: web1
    deploy:
      replicas: 2
    ports:
      - 8081:80

  web2:
    build:
      context: ./dockerfiles/web2
    image: web2
    deploy:
      replicas: 3
    ports:
      - 8082:80

In der Datei docker-compose.yml definieren wir zwei Dienste: web1 und web2, die jeweils unterschiedliche Build-Kontexte verwenden. Gleichzeitig geben wir auch die Replikat- und Portattribute jedes Dienstes an, um die Anzahl der Container und die Portzuordnung zu steuern.

  1. Stellen Sie den Dienst bereit

Abschließend verwenden wir den Docker Stack-Befehl, um den Dienst bereitzustellen:

$ docker stack deploy -c services.yml myapp

Nachdem die Befehlsausführung abgeschlossen ist, können wir den folgenden Befehl verwenden, um den Status des Dienstes anzuzeigen:

$ docker stack ps myapp
  1. Testen Sie den Dienst

Nach Abschluss der Dienstbereitstellung können wir über den Browser auf die folgenden URLs zugreifen, um zu testen, ob die Dienste web1 und web2 ordnungsgemäß funktionieren:

web1-Dienst:

http://localhost:8081

web2-Dienst:

http://localhost:8082

Wenn Alles ist in Ordnung, wir sehen die index.html für den Inhalt jeder Dienstdatei.

Zusammenfassung

In diesem Artikel haben wir vorgestellt, wie man verschiedene Verzeichnisse für die Containererstellung im Docker Service verwendet. Wir haben zwei Dienste mit unterschiedlichen Docker-Dateien erstellt und den Build-Kontext der Dienste in der Datei docker-compose.yml definiert. Schließlich haben wir den Dienst bereitgestellt und getestet, ob der Dienst ordnungsgemäß ausgeführt wurde. Dies bietet Benutzern, die den Docker-Dienst verwenden, eine bequeme Möglichkeit, Container-Images in verschiedenen Verzeichnissen zu erstellen.

Das obige ist der detaillierte Inhalt vonKonzentrieren Sie sich auf die Verwendung verschiedener Verzeichnisse im Docker-Dienst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn