{"external_id":4340,"slug":"docker-grundlagen-container-images-compose","title":"Docker Grundlagen: Container, Images und Compose verstehen","content":"Docker startet Anwendungen als Container aus fertigen Images, und Docker Compose beschreibt mehrere Container samt Daten und Netzwerk in einer einzigen Datei namens docker-compose.yaml. Hier lernst du die Grundbegriffe, installierst Docker auf deinem vServer, startest deinen ersten Container, baust ein eigenes Image und betreibst einen kleinen Stack mit Compose. Ob Docker bei uns ohne Einschr\u00e4nkungen l\u00e4uft, beantwortet Kann ich Docker auf meinem vServer benutzen?\nDie Befehle gehen davon aus, dass du per SSH als root auf einem Debian&#8211; oder Ubuntu-Server angemeldet bist. Arbeitest du mit einem normalen Benutzer, setze sudo davor.\nDie Grundbegriffe\nBegriffWas es istWichtigster BefehlImageUnver\u00e4nderliche Vorlage mit Programm, Bibliotheken und Standardkonfigurationdocker pull, docker imagesContainerLaufende Instanz eines Images mit eigenem Dateisystem, Netzwerk und eigener Prozesslistedocker run, docker psVolumeVon Docker verwalteter Speicher, der Container \u00fcberlebtdocker volume lsNetzwerkVirtuelles Netz, in dem sich Container \u00fcber ihren Namen findendocker network lsCompose-ProjektMehrere Container, Volumes und Netze, beschrieben in einer Dateidocker compose up -d\nAus einem Image startest du beliebig viele Container, und jeder l\u00e4uft auf jedem Linux-Server gleich. Ein Container ist zum Wegwerfen gedacht: L\u00f6schst du ihn, ist alles weg, was nur im Container lag. Wichtige Daten geh\u00f6ren deshalb in ein Volume.\nDocker installieren\nInstalliere Docker aus der offiziellen Paketquelle von Docker. Die Pakete docker.io aus den Debian- oder Ubuntu-Quellen sind oft deutlich \u00e4lter und bringen Compose nicht als aktuelles Plugin mit. Wir empfehlen Debian 13 oder 12 sowie Ubuntu 24.04 oder 22.04.\nSchritt 1: System aktualisieren und alte Pakete entfernen\napt update &amp;&amp; apt upgrade -y\napt remove $(dpkg --get-selections docker.io docker-compose docker-doc docker-buildx podman-docker containerd runc | cut -f1)\nAuf einem frischen Server ist meist nichts zu entfernen, der Befehl schadet aber nicht.\nSchritt 2: Docker-Paketquelle einrichten\nF\u00fcr Debian:\napt install -y ca-certificates curl\ninstall -m 0755 -d \/etc\/apt\/keyrings\ncurl -fsSL https:\/\/download.docker.com\/linux\/debian\/gpg -o \/etc\/apt\/keyrings\/docker.asc\nchmod a+r \/etc\/apt\/keyrings\/docker.asc\ntee \/etc\/apt\/sources.list.d\/docker.sources &lt;&lt;EOF\nTypes: deb\nURIs: https:\/\/download.docker.com\/linux\/debian\nSuites: $(. \/etc\/os-release &amp;&amp; echo \"$VERSION_CODENAME\")\nComponents: stable\nArchitectures: $(dpkg --print-architecture)\nSigned-By: \/etc\/apt\/keyrings\/docker.asc\nEOF\napt update\nF\u00fcr Ubuntu ersetzt du in der GPG-Adresse und in der Zeile URIs jeweils debian durch ubuntu:\napt install -y ca-certificates curl\ninstall -m 0755 -d \/etc\/apt\/keyrings\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg -o \/etc\/apt\/keyrings\/docker.asc\nchmod a+r \/etc\/apt\/keyrings\/docker.asc\ntee \/etc\/apt\/sources.list.d\/docker.sources &lt;&lt;EOF\nTypes: deb\nURIs: https:\/\/download.docker.com\/linux\/ubuntu\nSuites: $(. \/etc\/os-release &amp;&amp; echo \"${UBUNTU_CODENAME:-$VERSION_CODENAME}\")\nComponents: stable\nArchitectures: $(dpkg --print-architecture)\nSigned-By: \/etc\/apt\/keyrings\/docker.asc\nEOF\napt update\nSchritt 3: Docker Engine und Compose installieren\napt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\nDocker startet danach automatisch und ist f\u00fcr den Systemstart aktiviert. Compose ist als Plugin dabei, der Befehl lautet docker compose mit Leerzeichen. Das alte docker-compose mit Bindestrich ist veraltet.\nSchritt 4: Installation pr\u00fcfen\nsystemctl status docker\ndocker run --rm hello-world\ndocker compose version\nGibt hello-world eine Begr\u00fc\u00dfung aus, ist Docker einsatzbereit. Updates kommen ab jetzt mit apt update &amp;&amp; apt upgrade, siehe Mein Linux Server hat Updates! Was jetzt?\nOptional: Docker ohne root nutzen\nusermod -aG docker deinbenutzer\nDanach meldest du dich neu an. Wichtig: Wer in der Gruppe docker ist, hat praktisch root-Rechte auf dem Server. Nimm dort nur Benutzer auf, denen du auch root geben w\u00fcrdest.\nDer erste Container mit docker run\nStarte einen Webserver aus dem offiziellen nginx-Image:\ndocker run -d --name web -p 8080:80 nginx:stable\n-d startet den Container im Hintergrund.\n--name web gibt ihm einen Namen, mit dem du ihn sp\u00e4ter ansprichst.\n-p 8080:80 leitet Port 8080 deines Servers auf Port 80 im Container.\nnginx:stable ist das Image samt Tag. Fehlt es lokal, l\u00e4dt Docker es automatisch herunter.\nDanach erreichst du den Webserver unter http:\/\/62.68.75.69:8080, wobei du die IP durch die deines Servers ersetzt. Mit diesen Befehlen verwaltest du den Container:\ndocker ps                 # laufende Container\ndocker ps -a              # alle Container, auch gestoppte\ndocker logs -f web        # Logs live verfolgen\ndocker exec -it web sh    # Shell im Container \u00f6ffnen\ndocker stop web           # Container stoppen\ndocker start web          # Container wieder starten\ndocker rm -f web          # Container stoppen und l\u00f6schen\nMit --restart unless-stopped startet ein Container nach einem Neustart des vServers automatisch wieder. Einen eigenen systemd-Dienst brauchst du daf\u00fcr nicht. Mit --rm l\u00f6scht Docker den Container, sobald er endet, praktisch f\u00fcr Tests.\nImages und Tags\nEin Image hei\u00dft name:tag. Der Tag bezeichnet die Version, zum Beispiel mariadb:11 oder postgres:17. L\u00e4sst du ihn weg, nimmt Docker latest. Das ist bequem, kann aber beim n\u00e4chsten pull eine neue Hauptversion bringen. Bei Datenbanken legst du deshalb eine feste Version fest.\ndocker pull nginx:stable      # Image laden oder aktualisieren\ndocker images                 # lokale Images anzeigen\ndocker rmi nginx:stable       # Image l\u00f6schen (nur, wenn kein Container es nutzt)\nEin eigenes Image mit einem Dockerfile\nEin Dockerfile beschreibt, wie ein Image entsteht. Im Beispiel packst du eine statische Webseite in nginx. Lege einen Projektordner mit einer Seite an:\nmkdir -p \/opt\/meine-seite\/site &amp;&amp; cd \/opt\/meine-seite\necho '&lt;h1&gt;Hallo aus meinem Container&lt;\/h1&gt;' &gt; site\/index.html\nnano Dockerfile\nFROM nginx:stable-alpine\nCOPY site\/ \/usr\/share\/nginx\/html\/\nFROM w\u00e4hlt das Basis-Image.\nCOPY kopiert Dateien aus deinem Ordner ins Image.\nRUN f\u00fchrt beim Bauen einen Befehl aus, zum Beispiel RUN apk add --no-cache curl.\nCMD legt den Startbefehl fest, falls das Basis-Image keinen mitbringt.\ndocker build -t meine-seite:1.0 .\ndocker run -d --name seite -p 8081:80 meine-seite:1.0\nDer Punkt am Ende von docker build steht f\u00fcr den aktuellen Ordner. Eine Datei .dockerignore schlie\u00dft Dateien vom Kopieren aus, zum Beispiel .git oder .env. Das h\u00e4lt das Image klein und verhindert, dass Geheimnisse darin landen.\nDaten dauerhaft speichern\nDatenbanken, Uploads und Konfigurationen geh\u00f6ren in ein Volume oder einen Bind Mount.\nVolumes: von Docker verwaltet\nVolumes legt Docker selbst unter \/var\/lib\/docker\/volumes\/ an. Das ist der empfohlene Weg f\u00fcr Datenbanken und Anwendungsdaten.\ndocker volume create webdaten\ndocker run -d --name web2 --restart unless-stopped \\\n  -v webdaten:\/usr\/share\/nginx\/html \\\n  -p 8082:80 nginx:stable\ndocker volume ls\ndocker volume inspect webdaten\nBind Mounts: ein Ordner deines Servers\nMit einem Bind Mount bindest du einen Ordner deines vServers in den Container ein, praktisch f\u00fcr Konfigurationsdateien, die du direkt bearbeiten willst. Mit :ro darf der Container nur lesen.\nmkdir -p \/srv\/web\ndocker run -d --name web3 --restart unless-stopped \\\n  -v \/srv\/web:\/usr\/share\/nginx\/html:ro \\\n  -p 8083:80 nginx:stable\nVolumes und Bind Mounts read-only einbinden\nMuss ein Container Daten nur lesen, bindest du sie schreibgesch\u00fctzt ein. Das gilt f\u00fcr Konfigurationsdateien, statische Webseiten und geteilte Daten. Selbst wenn die Anwendung im Container Fehler hat oder \u00fcbernommen wird, kann sie diese Dateien nicht ver\u00e4ndern. Du h\u00e4ngst dazu :ro (read-only) an den Pfad im Container. Das funktioniert bei Volumes und bei Bind Mounts:\n# Volume read-only\ndocker run -d --name web4 -v webdaten:\/usr\/share\/nginx\/html:ro -p 8084:80 nginx:stable\n# Bind Mount read-only (Konfigurationsdatei)\ndocker run -d --name web5 -v \/srv\/nginx.conf:\/etc\/nginx\/nginx.conf:ro -p 8085:80 nginx:stable\nIn Compose schreibst du dasselbe in die Kurzform oder in die ausf\u00fchrliche Form mit read_only: true:\nservices:\n  web:\n    image: nginx:stable\n    volumes:\n      - .\/site:\/usr\/share\/nginx\/html:ro\n      - type: volume\n        source: webdaten\n        target: \/daten\n        read_only: true\nvolumes:\n  webdaten:\nEin Volume, in das ein anderer Container schreibt und das du in einem zweiten Container nur liest, ist ein typischer Einsatz. So kann zum Beispiel ein Webserver die hochgeladenen Dateien eines anderen Dienstes ausliefern, aber nicht ver\u00e4ndern.\nMit read_only: true auf Dienstebene machst du das gesamte Dateisystem des Containers schreibgesch\u00fctzt. Schreibt die Anwendung tempor\u00e4re Dateien, gibst du daf\u00fcr einen fl\u00fcchtigen Speicher frei:\nservices:\n  web:\n    image: nginx:stable\n    read_only: true\n    tmpfs:\n      - \/tmp\n      - \/var\/cache\/nginx\n      - \/var\/run\n    volumes:\n      - .\/site:\/usr\/share\/nginx\/html:ro\nViele Images schreiben beim Start in eigene Ordner. Startet ein Container mit read_only: true nicht, steht der betroffene Pfad in docker logs. Diesen Pfad gibst du dann als tmpfs oder als beschreibbares Volume frei.\nVolumes sichern\nUnsere kostenlosen Backups sichern die komplette Festplatte deines vServers, also auch alle Volumes. Sie laufen im laufenden Betrieb. Bei Datenbanken legst du deshalb zus\u00e4tzlich einen Dump an. Ein einzelnes Volume packst du so in ein Archiv:\nmkdir -p \/root\/backup\ndocker run --rm -v webdaten:\/daten:ro -v \/root\/backup:\/backup alpine \\\n  tar czf \/backup\/webdaten.tar.gz -C \/daten .\nVor gr\u00f6\u00dferen Updates lohnt sich ein Snapshot im Cloud Manager. Snapshots werden nach 48 Stunden automatisch gel\u00f6scht und ersetzen kein Backup.\nDocker Compose\nSobald eine Anwendung aus mehreren Containern besteht, wird docker run un\u00fcbersichtlich. Mit Docker Compose beschreibst du alle Container, Netzwerke und Volumes in einer Datei und startest alles mit einem Befehl. Die Datei hei\u00dft compose.yaml. Der fr\u00fcher \u00fcbliche Schl\u00fcssel version: am Anfang ist \u00fcberfl\u00fcssig.\nAufbau einer compose.yaml\nservices: enth\u00e4lt die Container. Jeder Eintrag ist ein Dienst mit eigenem Namen.\nimage: nennt das Image, alternativ baut build: eins aus einem Dockerfile.\nports: ver\u00f6ffentlicht Ports, environment: setzt Umgebungsvariablen.\nvolumes: bindet Speicher ein. Benannte Volumes deklarierst du zus\u00e4tzlich ganz unten.\nrestart: legt fest, ob der Container nach Neustart oder Absturz wieder startet.\ndepends_on: bestimmt die Startreihenfolge.\nBeispiel: Adminer mit PostgreSQL\nDer Stack besteht aus einer PostgreSQL-Datenbank und Adminer als Weboberfl\u00e4che. Der Healthcheck sorgt daf\u00fcr, dass Adminer erst startet, wenn die Datenbank bereit ist.\nmkdir -p \/opt\/adminer &amp;&amp; cd \/opt\/adminer\necho \"DB_PASSWORD=$(openssl rand -base64 24)\" &gt; .env\nchmod 600 .env\nnano compose.yaml\nservices:\n  db:\n    image: postgres:17\n    restart: unless-stopped\n    environment:\n      POSTGRES_USER: demo\n      POSTGRES_PASSWORD: ${DB_PASSWORD}\n      POSTGRES_DB: demo\n    volumes:\n      - dbdaten:\/var\/lib\/postgresql\/data\n    healthcheck:\n      test: &#91;\"CMD-SHELL\", \"pg_isready -U demo -d demo\"]\n      interval: 5s\n      timeout: 3s\n      retries: 10\n  adminer:\n    image: adminer:latest\n    restart: unless-stopped\n    depends_on:\n      db:\n        condition: service_healthy\n    ports:\n      - \"127.0.0.1:8080:8080\"\nvolumes:\n  dbdaten:\nCompose liest die Datei .env im selben Ordner automatisch, das Passwort steht also nicht in der compose.yaml. Starte den Stack und pr\u00fcfe ihn:\ndocker compose up -d\ndocker compose ps\nAdminer lauscht nur auf 127.0.0.1, ist also nicht aus dem Internet erreichbar. Per SSH-Tunnel \u00f6ffnest du die Oberfl\u00e4che auf deinem Rechner:\nssh -L 8080:127.0.0.1:8080 root@62.68.75.69\nDanach rufst du http:\/\/localhost:8080 im Browser auf. Als Server tr\u00e4gst du db ein, denn Container im selben Compose-Projekt erreichen sich \u00fcber den Dienstnamen. Daf\u00fcr brauchst du keinen ver\u00f6ffentlichten Port.\nDie wichtigsten Compose-Befehle\nAlle Befehle f\u00fchrst du im Projektordner aus:\ndocker compose up -d                  # alles starten (im Hintergrund)\ndocker compose ps                     # Status der Container\ndocker compose logs -f                # Logs live verfolgen\ndocker compose config                 # Datei pr\u00fcfen, Variablen eingesetzt anzeigen\ndocker compose pull &amp;&amp; docker compose up -d   # Images aktualisieren\ndocker compose restart db             # einen Dienst neu starten\ndocker compose exec db bash           # Shell im Container db\ndocker compose down                   # stoppen und Container entfernen (Volumes bleiben)\nEin Beispiel aus der Praxis mit Compose, Datenbank und Reverse Proxy ist unser n8n Installations-Guide.\nDocker Hub und andere Registries\nDer Docker Hub ist die zentrale Registry, aus der Docker standardm\u00e4\u00dfig Images l\u00e4dt. Schreibst du image: nginx:stable, holt Docker das Image von dort.\nVertrauensw\u00fcrdige Images w\u00e4hlen: Achte auf die Kennzeichnung \u201eDocker Official Image\u201c oder \u201eVerified Publisher\u201c. Bei Images unbekannter Herkunft l\u00e4uft fremder Code auf deinem Server.\nSuchen und laden: docker search nginx und docker pull nginx:stable.\nAndere Registries: Schreibe den Registry-Namen vor das Image, zum Beispiel ghcr.io\/benutzer\/projekt:1.0 oder quay.io\/....\nDownload-Limit ohne Docker-Konto\nOhne Docker-Konto ist der Download von Images begrenzt. Der Docker Hub erlaubt anonym 100 Pulls in 6 Stunden pro IPv4-Adresse beziehungsweise pro IPv6-\/64-Netz. Mit einem kostenlosen Docker-Konto sind es 200 Pulls in 6 Stunden. Das Limit z\u00e4hlt pro Adresse deines Servers, nicht pro Image und nicht pro Container. Jede Aktualisierung mit docker compose pull verbraucht Pulls, bei vielen Diensten kommen schnell einige zusammen.\nHast du das Limit erreicht, bricht der Download mit dem Fehler You have reached your pull rate limit ab (HTTP-Status 429). Dann wartest du, bis das Limit wieder sinkt, oder meldest dich an:\ndocker login\nStatt deines Passworts verwendest du am besten ein Access Token, das du im Docker-Konto unter den Sicherheitseinstellungen erzeugst und jederzeit wieder l\u00f6schen kannst. Das gilt besonders f\u00fcr CI-Pipelines und Server, die h\u00e4ufig Images ziehen. Das Limit gilt nur f\u00fcr Docker Hub, bei anderen Registries wie ghcr.io gelten deren eigene Regeln.\nH\u00e4ufige Stolpersteine\nVer\u00f6ffentlichte Ports umgehen die Firewall\nMit -p 8080:80 oder ports: tr\u00e4gt Docker eigene Paketfilter-Regeln ein. Diese greifen vor ufw oder firewalld. Ein Port, den du in ufw gesperrt hast, ist trotzdem aus dem Internet erreichbar, wenn ein Container ihn ver\u00f6ffentlicht. Dienste, die nur intern erreichbar sein sollen, bindest du deshalb an localhost:\nports:\n  - \"127.0.0.1:8080:80\"\nMehr zur Absicherung allgemein steht in Linux Server absichern. Bei uns sind auf Linux-Servern zudem alle Ports standardm\u00e4\u00dfig offen, siehe Sind alle Ports freigegeben?\nContainer startet und beendet sich sofort\nDer Grund steht fast immer im Log: docker logs web beziehungsweise docker compose logs db. Typische Ursachen sind fehlende Umgebungsvariablen, ein belegter Port oder Schreibrechte auf einem Bind Mount.\nPort ist schon belegt\nDie Meldung port is already allocated hei\u00dft, dass ein anderer Container oder Dienst den Port nutzt. ss -tlnp zeigt, wer ihn belegt. W\u00e4hle einen anderen Host-Port, zum Beispiel 8090:80.\nDatenbank-Passwort \u00e4ndert sich nicht\nDatenbank-Images lesen Variablen wie POSTGRES_PASSWORD nur beim ersten Start mit leerem Volume. \u00c4nderst du das Passwort sp\u00e4ter in der .env, bleibt das alte im Volume. Setze es dann in der Datenbank selbst neu.\nVolumes verschwinden\ndocker compose down -v und docker system prune --volumes l\u00f6schen Volumes samt Inhalt. Lass -v weg, wenn du die Daten behalten willst.\nFestplatte l\u00e4uft voll\nAlte Images, gestoppte Container und Build-Cache sammeln sich an:\ndocker system df\ndocker image prune\ndocker system prune\nContainer-Logs wachsen ohne Limit. Du begrenzt sie global in der Datei \/etc\/docker\/daemon.json. Diese Datei existiert bei einer Standardinstallation nicht, du legst sie selbst an:\nnano \/etc\/docker\/daemon.json\nTrage diesen Inhalt ein. Gibt es die Datei auf deinem Server schon, erg\u00e4nze die beiden Eintr\u00e4ge log-driver und log-opts in der vorhandenen Datei, statt sie zu \u00fcberschreiben. Danach startest du Docker neu. Die Einstellung gilt nur f\u00fcr neu erstellte Container, bestehende erstellst du neu (bei Compose mit docker compose up -d --force-recreate):\n{\n  \"log-driver\": \"json-file\",\n  \"log-opts\": {\n    \"max-size\": \"10m\",\n    \"max-file\": \"3\"\n  }\n}\nsystemctl restart docker\nCannot connect to the Docker daemon\nEntweder l\u00e4uft der Dienst nicht (systemctl start docker, Fehler in journalctl -u docker) oder dein Benutzer ist nicht in der Gruppe docker. Nach usermod musst du dich einmal ab- und wieder anmelden.\nVerwandte Artikel\nKann ich Docker auf meinem vServer benutzen?\nn8n Installations-Guide\nSnapshot erstellen und zur\u00fcckspielen\nMein Smart Value hat nur IPv6. Wie verbinde ich mich?\nKann ich auf meinem vServer selbst virtualisieren?","schema":null,"facts":{"Was ist der Unterschied zwischen Image und Container?":"Ein <strong>Image<\/strong> ist die unver\u00e4nderliche Vorlage, ein <strong>Container<\/strong> ist eine laufende Instanz davon. Aus einem Image startest du beliebig viele Container.","Gehen meine Daten verloren, wenn ich einen Container l\u00f6sche?":"Ja, alles, was nur im Container liegt, ist danach weg. Daten in einem <strong>Volume<\/strong> oder <strong>Bind Mount<\/strong> bleiben erhalten.","Was macht docker compose up -d?":"Der Befehl erstellt und startet alle Dienste aus der <code>compose.yaml<\/code> im Hintergrund. Fehlende Images l\u00e4dt Compose dabei automatisch herunter.","Heisst es docker-compose oder docker compose?":"Richtig ist <code>docker compose<\/code> mit Leerzeichen. Das alte <code>docker-compose<\/code> mit Bindestrich ist veraltet, Compose ist heute ein Plugin von Docker.","Wie aktualisiere ich einen Compose-Stack?":"Wechsle in den Projektordner und f\u00fchre <code>docker compose pull &amp;&amp; docker compose up -d<\/code> aus. Vorher lohnt sich ein Snapshot im Cloud Manager.","Wie sehe ich die Logs eines Containers?":"Mit <code>docker logs -f containername<\/code> beziehungsweise <code>docker compose logs -f<\/code> im Projektordner verfolgst du die Logs live."},"links":[{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/914","data":{"title":"vServer mit Docker: Installation, Compose und Docker Hub","meta_description":"Docker auf dem vServer: So installierst du Docker und Compose auf Debian oder Ubuntu, speicherst Daten dauerhaft und nutzt den Docker Hub. Mit Beispielen.","meta":[]}},{"type":"faq","url":"https:\/\/support.prepaid-hoster.de\/faq\/de\/virtuelle-server\/ssh-linux-server-daten-uebertragen.html","data":{"post_id":"57496","post_slug":"ssh-linux-server-daten-uebertragen","post_cat_id":"9"}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/85","data":{"title":"Mein Linux Server hat Updates! Was jetzt?","meta_description":"Sch\u00fctze deinen Server mit unseren einfachen Update-Anleitungen vor Sicherheitsl\u00fccken und sorge f\u00fcr Stabilit\u00e4t.","meta":[]}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/692","data":{"title":"Sind Backups kostenlos? - Prepaid-Hoster Support","meta_description":"Aktiviere einfache und kostenlose Backups f\u00fcr Deinen KVM-Server. Halte Deine Daten immer aktuell!","meta":[]}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/3859","data":{"title":"Wie erstelle ich einen Snapshot und spiele ihn zur\u00c3\u00bcck?","meta_description":"So legst du im Cloud Manager einen Snapshot an, spielst ihn zur\u00c3\u00bcck und erkennst, wann ein Snapshot reicht und wann du ein Backup brauchst.","meta":[]}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/3481","data":{"title":"n8n Installations Guide \u2013 Schritt f\u00c3\u00bcr Schritt auf deinem Server","meta_description":"Installiere n8n sicher und performant auf deinem n8n Server mit unserem umfassenden Guide.","meta":[]}},{"type":"external","url":"https:\/\/hub.docker.com\/","data":{"title":"Docker Hub Container Image Library | App Containerization","meta_description":"Welcome to the world's largest container registry built for developers and open source contributors to find, use, and share their container images. Build, push and pull.","meta":[]}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/2473","data":{"title":"Linux Server absichern: Schritt-f\u00c3\u00bcr-Schritt Anleitung","meta_description":"Sichere deinen Linux-Server mit dem Sicherheitsmanager: Finde Schwachstellen und schlie\u00c3\u009fe sie effektiv.","meta":[]}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/1860","data":{"title":"Sind alle Ports freigegeben? - Prepaid-Hoster Support","meta_description":"Entdecke in unserem FAQ, wie du Ports auf unseren Servern freigeben kannst und wie du dein Programm von au\u00dfen erreichbar machst. Durchsuche auch unsere zus\u00e4tzlichen Ressourcen.","meta":[]}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/914","data":{"title":"vServer mit Docker: Installation, Compose und Docker Hub","meta_description":"Docker auf dem vServer: So installierst du Docker und Compose auf Debian oder Ubuntu, speicherst Daten dauerhaft und nutzt den Docker Hub. Mit Beispielen.","meta":[]}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/3481","data":{"title":"n8n Installations Guide \u2013 Schritt f\u00c3\u00bcr Schritt auf deinem Server","meta_description":"Installiere n8n sicher und performant auf deinem n8n Server mit unserem umfassenden Guide.","meta":[]}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/3859","data":{"title":"Wie erstelle ich einen Snapshot und spiele ihn zur\u00c3\u00bcck?","meta_description":"So legst du im Cloud Manager einen Snapshot an, spielst ihn zur\u00c3\u00bcck und erkennst, wann ein Snapshot reicht und wann du ein Backup brauchst.","meta":[]}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/3917","data":{"title":"Mein Smart Value hat nur IPv6. Wie verbinde ich mich?","meta_description":"Dein Smart Value hat nur IPv6? So pr\u00fcfst du, ob dein Anschluss IPv6 kann, verbindest dich per SSH oder buchst eine IPv4-Adresse dazu.","meta":[]}},{"type":"external","url":"https:\/\/support.prepaid-hoster.de\/faq\/1851","data":{"title":"Kann ich auf meinem vServer selbst virtualisieren?","meta_description":"Nested Virtualization ist auf unseren KVM vServern deaktiviert. Sicherheitsrisiken verhindern Freischaltung.","meta":[]}}]}