Inhalt: Docker is a platform used to run applications in containers. It enables you to use specific software, such as Redis or MongoDB, or a specific version of software, which might not be supported by your operating system or might need compiling.

Docker is available as a Plesk extension. With it, you can run and manage containers based on specific Docker images, and to use Docker both on the local host and on remote servers.

In this topic, you will learn how to create, configure, and manage Docker containers in Plesk. You will also learn how to control remote Docker hosts from Plesk.

Anforderungen und Einschränkungen

Warnung: Die Docker-Erweiterung lädt Images von Docker Hub herunter, ohne sie anzupassen oder zu konfigurieren. Einige Docker-Container oder die darin enthaltene Software sind nur für vertrauenswürdige Umgebungen bestimmt und können eine zusätzliche Sicherheitseinrichtung erfordern. Bevor Sie diese heruntergeladenen Images in Plesk starten, müssen Sie deren Sicherheit selbst erhöhen. Spezifische Anweisungen finden Sie in der Dokumentation des Container- oder Software-Anbieters. Weitere Informationen zur Sicherheit finden Sie zum Beispiel in der Redis-Dokumentation.

  • Docker wird in Plesk unter den folgenden Betriebssystemen unterstützt: CentOS 7, Red Hat Enterprise Linux 7, Debian 10, Debian 11, Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, AlmaLinux 8.x, Rocky Linux 8.x und Virtuozzo 7 mit Update 1 Hotfix 1 (7.0.1-686) oder neuer.

    In Plesk für Windows können Sie Docker verwenden, auch wenn die Plattform auf einem Remotecomputer installiert ist. Weitere Informationen finden Sie weiter unten in diesem Abschnitt unter **Verwenden von Remote Docker**.

  • Sie können Docker nicht verwenden, wenn Plesk in einem Docker-Container bereitgestellt wurde.

  • To use remote Docker services in Plesk, you need an additional license. It can be purchased either separately or as a part of the Hosting Pack, Power Pack, or Developer Pack.

  • Docker kann nur auf x64-Systemen ausgeführt werden.

  • Docker-Container in Plesk können nicht migriert oder gesichert werden. Sie können jedoch Daten sichern, die in Containern verwendet werden (siehe Volume-Mapping unten), oder Snapshots herunterladen.

  • Virtuozzo 7 mit Update 1 Hotfix 1 (7.0.1-686) oder höher wird unterstützt. Ab diesem Update ist die Firewall für neue auf CentOS 7 basierte Container standardmäßig aktiviert, da Virtuozzo eine erhöhte Sicherheit erforderlich macht. Der Plesk Administrator muss die Firewall manuell konfigurieren, damit alle für Plesk notwendigen Ports geöffnet sind.

Voraussetzungen

Before you can start using Docker, the Docker extension must be installed on the Plesk server:

Once the extension is installed, you are ready to begin. You will see the Docker option in the Navigation Pane.

image docker menu

Image-Katalog

Im Katalog (Docker > Docker-Image-Katalog) werden in Plesk die Images von https://hub.docker.com/explore angezeigt. Standardmäßig werden nur empfohlene Images angezeigt. Um mehr Images anzuzeigen, suchen Sie über das Suchfeld oder verwenden Sie Filter.

Für jede Anwendung sind mehrere Versionen verfügbar. Sie können eine bestimmte Version ausführen, indem Sie wie unten gezeigt die entsprechende Kennzeichnung auswählen.

image docker catalog

So verwenden Sie Filter:

  1. Klicken Sie auf den Pfeil image down arrow neben dem Suchfeld.

  2. Geben entweder den Image-Namen oder das Repository an oder beides.

    Die folgenden Repositories stehen zur Auswahl:

    • Lokales Repository: Enthält lokale Images. Diese Images wurden bereits heruntergeladen und sind jetzt auf dem Server mit Docker gespeichert. Weitere Details finden Sie weiter unten in diesem Abschnitt unter Verwalten lokaler Images.
    • Docker Hub: https://hub.docker.com/explore

So führen Sie einen Container aus:

  1. Rufen Sie Docker > Docker-Image-Katalog auf.

  2. Über das Suchfeld oder Filter können Sie Anwendungen rasch im Katalog finden.

  3. Wenn Sie die Beschreibung der Anwendung und die Dokumentation im Docker Hub anzeigen möchten, klicken Sie auf den Image-Namen. Dies gilt nicht für lokale Images.

  4. Um eine bestimmte Version auszuführen, klicken Sie auf den Pfeil neben der Schaltfläche Ausführen, und wählen Sie die Anwendungsversion aus.

  5. Um die aktuellste Version der ausgewählten Anwendung auszuführen, klicken Sie auf Ausführen.

    Wenn das Image lokal gespeichert ist, wird die Schaltfläche Ausführen (lokal) angezeigt.

    In Plesk wird ein Container erstellt und Sie werden aufgefordert, die entsprechenden Einstellungen wie Umgebungsvariablen festzulegen. Anschließend wird der Container ausgeführt. Sie können die Ausführung abbrechen, indem Sie auf dem Bildschirm Einstellungen auf Abbrechen klicken. Weitere Details zu den Einstellungen finden Sie weiter unten auf dieser Seite unter Container-Einstellungen.

  6. Der Container wird oben auf der Seite Docker-Katalog in der Container-Liste angezeigt.

    image docker container running

Im Protokoll (Protokolle) finden Sie Informationen zu den Einstellungen, die für das korrekte Ausführen erforderlich sind.

Container-Einstellungen

Bemerkung: Wenn Sie Container-Einstellungen ändern möchten, müssen Sie den Container nicht anhalten. Wenn Sie neue Einstellungen speichern, wird der Container in Plesk neu erstellt.

Um Container-Einstellungen zu bearbeiten, rufen Sie Einstellungen oder Details > Einstellungen auf.

image container settings

Speicherlimit

Standardmäßig ist die RAM-Nutzung in einem Docker-Container nicht begrenzt. Um einen Grenzwert für RAM festzulegen, deaktivieren Sie das Kontrollkästchen Unbegrenzt und geben Sie einen Wert in MB in das Feld Speicherlimit ein.

Bemerkung: CPU-Verbrauch und Datenträgernutzung können derzeit für einen Docker-Container nicht eingeschränkt werden.

Bemerkung: Docker-Containers sind Objekte auf Administratorebene und werden nicht von Cgroup-Beschränkungen auf Abonnementebene (CPU, RAM und Datenträgernutzung) gesteuert.

Automatischer Start

Wenn die Option Automatischer Start nach dem Systemneustart nicht ausgewählt wurde, ist die Website des Containers nach dem Systemneustart möglicherweise nicht verfügbar und Sie müssen den Container manuell starten.

Port-Mapping

Standardmäßig ist Automatisches Port-Mapping aktiviert und der interne Port des Containers wird einem beliebigen Port des Hostsystems zugeordnet, zum Beispiel 32768.

Um den Port auf dem Hostsystem zu ändern, deaktivieren Sie die Option Automatisches Port-Mapping und geben Sie einen anderen externen Port unter Manuelles Mapping an. Falls Manuelles Mapping nicht angezeigt wird, wenn Sie die Option deaktivieren, heißt das, dass der Container Ports nicht verfügbar macht.

When using manual mapping, by default Docker only binds to the specified port on the host system’s localhost interface (127.0.0.1). This way, the port is inaccessible from the Internet, and the application inside the container is safe from attacks. To have Docker bind to the specified port on all network interfaces of the host system, clear the „a private port on the host“ checkbox. If you do, the application inside the container becomes accessible from the Internet, and can be reached on the specified port via any of the host system’s IP addresses.

Warnung: Docker presumes that authentication is carried out by the application itself, but sometimes it is not so (for example, MySQL/MariaDB does not allow anonymous access by default, but redis does). Making the application inside a container accessible from the Internet may result in the application being attacked by a malicious actor.

Volume-Mapping

Docker-Volumes sind Verzeichnisse auf Ihrem Server, die in einem Docker Container bereitgestellt wurden. Somit haben Sie einen permanenten Speicher, der von Ihrem Hostsystem aus zugegriffen werden kann. Die Daten in Docker-Volumes können gesichert werden und, noch viel wichtiger, werden nicht gelöscht, wenn Sie einen Container beenden oder löschen.

Weitere Informationen zu Daten in Containern finden Sie in der Docker-Dokumentation.

Um ein Volume-Mapping hinzuzufügen, geben Sie Folgendes an:

  • Feld „Ziel“ (links): Absoluter Pfad zu einem Verzeichnis im Container
  • Feld „Quelle“ (rechts): Absoluter Pfad zum Verzeichnis auf dem Server, das im Container bereitgestellt werden soll

Um weitere Verzeichnisse zuzuordnen, klicken Sie auf Mapping hinzufügen.

Einrichten von Umgebungsvariablen

Umgebungsvariablen werden von der Anwendung im Container verwendet. Sie müssen möglicherweise zusätzliche Variablen hinzufügen oder vorhandene bearbeiten. In Plesk können Sie so viele Variablen wie erforderlich hinzufügen.

Aktionen mit Containern

Sie können Folgendes mit Containern ausführen:

  • Container neu starten (Neu starten) oder beenden (Beenden). In diesen Fällen wird der Container mit den aktuellen Einstellungen neu erstellt.

    Bemerkung: Falls Sie die Daten auf dem bereitgestellten Volume nicht gespeichert haben, gehen sie verloren (siehe den Abschnitt unten Volume-Mapping).

  • Protokolle und Ressourcenverbrauch anzeigen (Details).

  • Container-Einstellungen wie Umgebungsvariablen oder Volume-Mapping ändern (Einstellungen oder Details > Einstellungen).

    In Plesk unter CentOS können Sie einen Speichergrenzwert für einen Container festlegen (Einstellungen > Speicherlimit).

  • Container umbenennen (Einstellungen > Containername).

  • Container mithilfe desselben Images oder einer anderen Image-Version neu erstellen (Details > Neu erstellen).

  • Image basierend auf einem Container mit benutzerdefinierten Einstellungen erstellen (Details > Als Image speichern).

  • Snapshot eines Containers aufnehmen (Details > Snapshot herunterladen).

  • Container entfernen (Entfernen oder Details > Entfernen).

Neuerstellung eines Containers

In der Regel müssen Sie einen Container neu erstellen, wenn Sie die Anwendung auf eine neue Version aktualisieren möchten. Sie können einen Container nicht nur mit einer neueren, sondern mit jeder beliebigen, im Katalog verfügbaren Anwendungsversion neu erstellen.

Benutzerdefinierte Einstellungen werden bei der Neuerstellung erhalten. Um von der Anwendung im Container verwendete Daten beizubehalten, geben Sie ein Volume-Mapping an, bevor Sie einen Container neu erstellen. Dank Volume-Mapping können Sie auf Verzeichnisse zugreifen, die in einem Container verwendet werden (siehe Volume-Mapping in den Container-Einstellungen).

So erstellen Sie einen Container neu:

  1. Rufen Sie Docker auf und klicken Sie unter dem Container, den Sie neu erstellen möchten, auf Details.
  2. Klicken Sie in den Container-Einstellungen auf Neu erstellen und geben Sie die Image-Version an. Legen Sie außerdem fest, ob Standardumgebungsvariablen verwendet werden sollen.

Verwenden von Remote-Docker

Standardmäßig wird Docker als Plesk Komponente installiert. Sie können jedoch einen oder mehrere Docker-Dienste außerhalb von Plesk verwenden. Beachten Sie, dass Sie nur jeweils einen Dienst gleichzeitig verwenden können. Der Hostname des ausgewählten Servers ist im Titel des Docker-Katalogs in Plesk zu finden.

Bemerkung: Zur Verwaltung von Docker-Remote-Diensten ist ein Plesk Lizenzschlüssel als Add-on erforderlich. Ohne dieses Add-on können Sie nur den lokalen Docker-Dienst verwalten, der auf dem Plesk Server ausgeführt wird.

Remote-Dienste konfigurieren

Konfigurieren Sie den Remoteserver, auf dem Docker ausgeführt wird, wie in der Docker-Dokumentation beschrieben, um ihn als Remoteserver in Plesk zu verwenden.

Remote-Dienste verwalten

Die folgenden Schritte gelten für Plesk für Linux und für Windows.

So verwenden Sie Docker, wenn dieser auf einem Remotehost ausgeführt wird:

  1. Rufen Sie Tools & Einstellungen > Docker (unter Serververwaltung) auf.
  2. Klicken Sie auf Server hinzufügen und geben Sie die Einstellungen des Remoteservers für Docker an.
  3. Um diesen Docker-Dienst in Plesk zu verwenden, lassen Sie die Option Aktivieren ausgewählt.

The link to Docker will appear in the Navigation Pane.

So wechseln Sie zwischen Docker-Diensten:

  1. Rufen Sie Tools & Einstellungen > Docker (unter Serververwaltung) auf.
  2. Wählen Sie in der Serverliste den Server aus, den Sie verwenden möchten, und klicken Sie auf Aktivieren.

Sie können den Server auch aktivieren, wenn Sie dessen Einstellungen bearbeiten.

image remote docker hosts

Erstellen von Images mit benutzerdefinierten Einstellungen

Wenn Sie ein neues Image basierend auf den Änderungen an einem Container erstellen möchten, verwenden Sie den Befehl Als Image speichern. Damit wird ein Snapshot Ihres Containers erstellt, der als neues Image im Image-Katalog angezeigt wird. So können Sie Images mit benutzerdefinierten Einstellungen wie Umgebungsvariablen erstellen.

So erstellen Sie ein Image von einem Ihrer Container:

Rufen Sie Docker > Details unter dem Containernamen > Als Image speichern auf und geben Sie Folgendes an (optional):

  • Image-Name. Standardmäßig wird eine ID generiert und als Name verwendet.
  • Tag. Sie können hier die Image-Version angeben. Standardmäßig ist diese Version „die aktuellste Version“.

Das erstellte Image wird im Image-Katalog angezeigt und ist als Lokales Image gekennzeichnet.

Verwalten lokaler Images

Lokale Images sind Images, die von Docker auf der lokalen Festplatte gespeichert werden. Sie müssen sie also nicht aus dem Image-Katalog herunterladen.

Ein Image wird in den folgenden Fällen als lokal bezeichnet:

  • Sie haben eine Version (Tag) eines Images ausgewählt und das Image wird heruntergeladen. Entweder führen Sie den Container später aus oder brechen die Ausführung ab (im Bildschirm Einstellungen). Das Image wird lokal gespeichert.
  • Sie laden ein Image in den Docker-Katalog in Plesk hoch (Image hochladen im Docker-Image-Katalog).
  • Sie haben ein benutzerdefiniertes Image von einem Container erstellt (siehe Erstellen von Images mit benutzerdefinierten Einstellungen oben).
  • Sie haben ein Image mithilfe der Befehlszeilenschnittstelle erstellt.

Wenn in Docker mindestens eine heruntergeladene Version einer Gruppe von Image-Versionen vorhanden ist, wird dieses Image im Katalog als Lokales Image gekennzeichnet. Ausführen (lokal) weist darauf hin, dass die aktuellste Version bereits heruntergeladen wurde. In Plesk wird auch angezeigt, wie viele lokale Images für ein Produkt vorhanden sind.

image docker local images

So rufen Sie lokale Images auf und entfernen veraltete lokale Images:

  1. Rufen Sie Docker > Docker-Image-Katalog auf.

  2. Um alle lokalen Images aufzurufen, klicken Sie auf den Pfeil neben dem Suchfeld und wählen Sie im Filter Repository die Option Lokal aus.

  3. Um alle lokalen Images eines bestimmten Produkts aufzurufen, klicken Sie auf den Link unter dem Produktnamen. Alle Tags eines lokalen Images und der verbrauchte Speicherplatz werden angezeigt.

    image remove outdated images

  4. Um alle Images zu entfernen, klicken Sie auf Alle Images löschen.

  5. Um ein bestimmtes Image zu entfernen, klicken Sie auf das Symbol „Entfernen“ image red cross neben dem Image, das Sie entfernen möchten.

Konfigurieren von nginx, damit Anforderungen über einen Proxy von Domains zu einem Container umgeleitet werden

Einige Docker-Container machen Ports verfügbar, damit über diese Ports auf Anwendungen in Containern zugegriffen werden kann.

Wenn Sie eine Anwendung in einem Docker-Container auf Ihrer Website verwenden, möchten Sie den nicht standardmäßigen Port eventuell nicht in der URL angeben. Um Unannehmlichkeiten zu vermeiden, können Sie für nginx festlegen, dass Anforderungen über einen Proxy von Domains zu diesem Port weitergeleitet werden. So können Domains den Standardport (z. B. 80) verwenden und Sie müssen den Port nicht extra in der URL angeben.

Anforderungen

  • nginx muss in Plesk ausgeführt werden.
  • Sie müssen den Port im Container manuell einem Port auf dem Hostsystem zuweisen (zum Beispiel 32768). Gehen Sie dazu zu Docker, wählen Sie einen Container aus, klicken Sie auf Einstellungen und deaktivieren Sie die Option Automatisches Port-Mapping.

Nachdem Sie den Port in einem Container manuell einem Port auf Ihrem System zugewiesen haben (z. B. 32768), können Sie für nginx festlegen, dass Anforderungen über einen Proxy von Domains zu diesem Port weitergeleitet werden. So können Domains den Standardport in nginx (z. B. 80) verwenden. Fügen Sie dafür wie folgt eine Regel für nginx in den Domain-Einstellungen hinzu:

Gehen Sie zu Websites & Domains, rufen Sie die Domain auf und wählen Sie Proxyregel für Docker > Regel hinzufügen aus. Geben Sie dann Folgendes an:

  • URL: Geben Sie die URL der Website an, die eine im Container ausgeführte Anwendung verwendet. Es kann sich dabei um die ganze oder nur Teile der Website handeln.
  • Container: Wählen Sie die Anwendung aus, die als Docker ausgeführt wird.
  • Port: Wählen Sie eine der Zuweisungen aus, die in den Container-Einstellungen angegeben wurde (ein Port in einem Container, der einem Port auf Ihrem System zugewiesen ist). Die Anforderungen werden von nginx über einen Proxy an den Port des Systems weitergeleitet.

Proxy-Regeln werden in der Webserver-Konfiguration implementiert, z. B. in der Datei nginx.conf der Website (in /var/www/vhosts/system/$domain/conf/):

#extension docker begin
location ~ ^/.* {
    proxy_pass http://0.0.0.0:9080;
    proxy_set_header Host             $host;
    proxy_set_header X-Real-IP        $remote_addr;
    proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
}
#extension docker end

Proxy-Regeln sollten auf Servern mit NAT einwandfrei funktionieren.

Bemerkung: Docker-Container, die über Proxy-Regeln mit einer Website verknüpft sind, werden nicht für die Berechnung der Speicherplatznutzung eines Abonnements herangezogen. Eine Ausnahme wäre ein Website-Verzeichnis, das in einem Docker-Container als Volume bereitgestellt ist. In diesem Fall werden alle Dateien im Container für die Speicherplatznutzung der Website miteingerechnet.