GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Was ist Docker Compose und wie wird es verwendet?

Docker Compose ist ein Tool, mit dem Sie die Bereitstellungen vieler verschiedener Docker-Container zentral verwalten können. Es ist ein wichtiges Tool für jede Anwendung, die mehrere Microservices benötigt, da es ermöglicht, dass sich jeder Service problemlos in einem separat verwalteten Container befindet.

Was macht Docker Compose?

Docker-Container werden zum Ausführen von Anwendungen in einer isolierten Umgebung verwendet. Heutzutage ist es üblich, dass Anwendungsbereitstellungen in Docker durchgeführt werden, da dies zahlreiche Vorteile bietet. Allerdings ist es oft nicht so einfach, nur einen einzelnen Container zu betreiben. Normalerweise kommen viele Container zusammen, um als ein zusammenhängender Dienst zu fungieren, der aus vielen beweglichen Teilen besteht.

Die Verwaltung all dieser Elemente zur Bereitstellungszeit ist unübersichtlich. Um dies zu bereinigen, bietet Docker Docker Compose, ein Konfigurationstool, mit dem mehrere Container gleichzeitig ausgeführt werden können. Sie können die gesamte Konfiguration in einer YAML-Datei definieren und dann alle Container mit einem Befehl starten.

Anstatt alle Ihre Dienste in einem großen Container zu haben, können Sie sie mit Docker Compose in einzeln verwaltbare Container aufteilen. Dies ist sowohl für die Erstellung als auch für die Bereitstellung besser, da Sie sie alle in separaten Codebasen verwalten können und nicht jeden einzelnen Container manuell starten müssen.

Die Verwendung von Docker Compose ist ein dreistufiger Prozess:

  • Erstellen Sie die Komponenten-Images mit ihren Dockerfiles oder ziehen Sie sie aus einer Registrierung.
  • Definieren Sie alle Komponentendienste in einer docker-compose.yml Datei.
  • Führen Sie alle zusammen mit docker-compose aus CLI.

Docker Compose ist keine andere Art von Dockerfile. Sie müssen Ihre Docker-Container weiterhin mit einem Dockerfile erstellen und veröffentlichen. Aber anstatt sie direkt auszuführen, können Sie Docker Compose verwenden, um die Konfiguration einer Bereitstellung mit mehreren Containern zu verwalten.

Wie verwenden Sie Docker Compose?

Die Konfiguration für eine Docker-Compose-Datei erfolgt in docker-compose.yml . Sie müssen dies nicht wie ein Dockerfile im Stammverzeichnis Ihres Projekts platzieren. Tatsächlich kann es überall hingehen, da es von keinem anderen Code abhängt. Wenn Sie die Images jedoch lokal erstellen, müssen sie mit dem zu erstellenden Code in einen Projektordner verschoben werden.

Eine Compose-Konfigurationsdatei sieht etwa wie folgt aus. Diese Konfiguration führt eine WordPress-Instanz mit wordpress aus Container aus dem Docker Hub. Dies hängt jedoch von einer MySQL-Datenbank ab, die ebenfalls von Compose erstellt wird.

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: rootpasswordchangeme
       MYSQL_DATABASE: wordpress
       MYSQL_USER: usernamechangeme
       MYSQL_PASSWORD: passwordchangeme

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: usernamechangeme
       WORDPRESS_DB_PASSWORD: passwordchangeme
volumes:
    db_data:

Werfen wir einen Blick auf das Format dieser Datei. Zuerst eine Versionsnummer, da sich die Syntax je nach verwendeter Version ändern kann.

Als nächstes eine Liste von Diensten. Die erste heißt „db“ und verwendet den mysql:5.7 Container, auf immer neu starten und mit Umgebungsvariablen, um die Datenbank mit einem Benutzer und einem Passwort zu konfigurieren. Um Daten über Neustarts hinweg beizubehalten, ist dieses Image mit einem Docker-Volume konfiguriert, das im MySQL-Datenverzeichnis gemountet ist.

Der andere Dienst ist „wordpress“, der vom Datenbankdienst abhängt und sicherstellt, dass Docker sicherstellt, dass die Datenbank vor dem Ausführen gestartet wird. Es legt Port 80 als Port 8000 offen und setzt einige Umgebungsvariablen, damit es eine Verbindung zu MySQL herstellen kann. Beachten Sie, dass der Host für die Datenbank auf db:3306 gesetzt ist , der den WordPress-Container anweist, sich mit dem „db“-Dienst zu verbinden.

Zuletzt werden die Volumes für die dauerhafte Speicherung definiert. Optional können Sie auch benutzerdefinierte Netzwerke für die Container definieren. Es gibt viele erweiterte Optionen, die Sie konfigurieren können. Wenn Sie also etwas Bestimmtes tun möchten, sollten Sie die Dokumentation für Docker Compose lesen.

Einmal konfiguriert, ist das Starten dieses Dienstes einfach. Führen Sie einfach docker-compose up aus , wodurch alle erforderlichen Container abgerufen und Ihre Dienste gestartet werden.

docker-compose up -d

Und Sie sollten die auf dem System laufenden Dienste mit docker ps sehen . In diesem Fall sehen Sie, dass WordPress ordnungsgemäß funktioniert.

VERBINDUNG: So installieren Sie Docker und Docker Compose unter Linux

Bauen mit Docker Compose

Docker Compose kann auch innerhalb eines Dockerfile-Projekts verwendet werden und kann so eingerichtet werden, dass ein Image lokal erstellt und ausgeführt wird, anstatt es vom Docker Hub abzurufen.

Dazu müssen Sie lediglich einen build hinzufügen Abschnitt über den Dienst. Sie können unterschiedliche Kontextverzeichnisse sowie unterschiedliche Dockerfiles für unterschiedliche Bilder festlegen.

version: "3.8"
services:
  webapp:
    build:
      context: ./dir
      dockerfile: Dockerfile-alternate
    image: imagename:tag

In diesem Fall das image: -Variable ist ebenfalls festgelegt, aber hier wird sie verwendet, um das Image zu taggen, das von Docker Compose erstellt wird.


Docker
  1. Was ist Umask und wie wird es verwendet?

  2. So verwenden Sie Docker Compose

  3. Was sind Docker-Volumes und wie verwenden Sie sie?

  4. Wie und warum man einen Remote-Docker-Host verwendet

  5. So installieren und verwenden Sie Docker Compose unter CentOS

So installieren und verwenden Sie Docker Compose unter Ubuntu 20.04

So installieren und verwenden Sie Docker Compose unter Ubuntu 22.04

So installieren und verwenden Sie Docker unter Ubuntu 22.04

So installieren Sie Docker und Docker Compose unter Linux

So installieren und verwenden Sie Docker unter Ubuntu 20.04

So installieren und verwenden Sie Docker Compose unter Debian 11