{"id":4928,"date":"2026-08-10T22:00:32","date_gmt":"2026-08-10T22:00:32","guid":{"rendered":"https:\/\/netguide.io\/linux\/portainer-installieren-docker-verwalten\/"},"modified":"2026-08-10T23:46:26","modified_gmt":"2026-08-10T23:46:26","slug":"portainer-installieren-docker-verwalten","status":"publish","type":"post","link":"https:\/\/netguide.io\/linux\/de\/portainer-installieren-docker-verwalten\/","title":{"rendered":"Portainer installieren: Docker per Weboberfl\u00e4che verwalten"},"content":{"rendered":"<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4797\" data-bid=\"2\" data-placement=\"4798\">PGRpdiBpZD0ibmV0Z3VpZGVhLTQxOTQ2Njc5IiBjbGFzcz0ibmV0Z3VpZGVhLWJlZm9yZS1jb250ZW50IG5ldGd1aWRlYS1lbnRpdHktcGxhY2VtZW50Ij48ZGl2IGNsYXNzPSJuZXRndWlkZWEtYWRsYWJlbCI+QWR2ZXJ0aXNlbWVudHM8L2Rpdj48c2NyaXB0IGFzeW5jIHNyYz0iLy9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvanMvYWRzYnlnb29nbGUuanM\/Y2xpZW50PWNhLXB1Yi02MjU4NTU2MjU3MjQ1OTk4IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48aW5zIGNsYXNzPSJhZHNieWdvb2dsZSIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IiBkYXRhLWFkLWNsaWVudD0iY2EtcHViLTYyNTg1NTYyNTcyNDU5OTgiIApkYXRhLWFkLXNsb3Q9IjM0OTQxMTUzNDIiIApkYXRhLWFkLWZvcm1hdD0iYXV0byI+PC9pbnM+CjxzY3JpcHQ+IAooYWRzYnlnb29nbGUgPSB3aW5kb3cuYWRzYnlnb29nbGUgfHwgW10pLnB1c2goe30pOyAKPC9zY3JpcHQ+CjwvZGl2Pg==<\/script>\n<p class=\"wp-block-paragraph\">Docker ausschlie\u00dflich \u00fcber die Kommandozeile zu bedienen, ist m\u00e4chtig \u2013 aber nicht immer bequem. Mit Portainer bekommst du eine \u00fcbersichtliche Weboberfl\u00e4che f\u00fcr all deine Container, Images, Volumes und Netzwerke. In dieser Anleitung zeigen wir dir, wie du <strong>Portainer installierst und Docker per Weboberfl\u00e4che verwaltest<\/strong> \u2013 von der Installation \u00fcber die Ersteinrichtung bis zu Stacks und Updates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Docker \u00fcber die Kommandozeile zu bedienen ist m\u00e4chtig, aber nicht immer bequem \u2013 gerade wenn du mehrere Container, Volumes und Netzwerke im Blick behalten willst. <strong>Portainer<\/strong> bringt eine grafische Weboberfl\u00e4che mit, \u00fcber die du Container starten, stoppen, Logs einsehen und Images verwalten kannst, ganz ohne lange Befehle. In dieser Anleitung installierst du Portainer als Container, sicherst den Zugang ab und erf\u00e4hrst, f\u00fcr welche Aufgaben sich das Web-UI wirklich lohnt.<\/p>\n\n\n\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-1ffd1ad5      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tInhaltsverzeichnis\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#was-ist-portainer\" class=\"uagb-toc-link__trigger\">Was ist Portainer?<\/a><li class=\"uagb-toc__list\"><a href=\"#voraussetzungen\" class=\"uagb-toc-link__trigger\">Voraussetzungen<\/a><li class=\"uagb-toc__list\"><a href=\"#portainer-per-docker-compose-installieren\" class=\"uagb-toc-link__trigger\">Portainer per Docker Compose installieren<\/a><li class=\"uagb-toc__list\"><a href=\"#erste-einrichtung\" class=\"uagb-toc-link__trigger\">Erste Einrichtung<\/a><li class=\"uagb-toc__list\"><a href=\"#was-du-mit-portainer-machen-kannst\" class=\"uagb-toc-link__trigger\">Was du mit Portainer machen kannst<\/a><li class=\"uagb-toc__list\"><a href=\"#stacks-compose-in-der-weboberfl\u00e4che\" class=\"uagb-toc-link__trigger\">Stacks: Compose in der Weboberfl\u00e4che<\/a><li class=\"uagb-toc__list\"><a href=\"#portainer-aktualisieren\" class=\"uagb-toc-link__trigger\">Portainer aktualisieren<\/a><li class=\"uagb-toc__list\"><a href=\"#portainer-ce-oder-business-edition\" class=\"uagb-toc-link__trigger\">Portainer CE oder Business Edition?<\/a><li class=\"uagb-toc__list\"><a href=\"#zugriff-absichern\" class=\"uagb-toc-link__trigger\">Zugriff absichern<\/a><li class=\"uagb-toc__list\"><a href=\"#wann-sich-portainer-lohnt-und-wann-nicht\" class=\"uagb-toc-link__trigger\">Wann sich Portainer lohnt \u2013 und wann nicht<\/a><li class=\"uagb-toc__list\"><a href=\"#h\u00e4ufige-fragen\" class=\"uagb-toc-link__trigger\">H\u00e4ufige Fragen<\/a><li class=\"uagb-toc__list\"><a href=\"#verliere-ich-meine-container-wenn-ich-portainer-entferne\" class=\"uagb-toc-link__trigger\">Verliere ich meine Container, wenn ich Portainer entferne?<\/a><li class=\"uagb-toc__list\"><a href=\"#wie-aktualisiere-ich-portainer\" class=\"uagb-toc-link__trigger\">Wie aktualisiere ich Portainer?<\/a><li class=\"uagb-toc__list\"><a href=\"#kann-portainer-mehrere-docker-hosts-verwalten\" class=\"uagb-toc-link__trigger\">Kann Portainer mehrere Docker-Hosts verwalten?<\/a><li class=\"uagb-toc__list\"><a href=\"#fazit\" class=\"uagb-toc-link__trigger\">Fazit<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Was ist Portainer?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer ist ein leichtgewichtiges Management-Tool f\u00fcr Docker. Es l\u00e4uft selbst als Container und stellt eine grafische Oberfl\u00e4che bereit, \u00fcber die du deine gesamte Docker-Umgebung im Browser steuerst: Container starten und stoppen, Logs einsehen, Images verwalten, Volumes und Netzwerke anlegen. Gerade f\u00fcr den Einstieg oder zum schnellen \u00dcberblick ist das Gold wert.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Voraussetzungen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Eine laufende Docker-Installation.<\/strong> Wie du zus\u00e4tzlich Compose einrichtest, steht in <a href=\"https:\/\/netguide.io\/linux\/de\/docker-compose-installieren-ubuntu-debian\/\">Docker Compose installieren<\/a>.<\/li>\n\n\n\n<li><strong>Ein freier Port<\/strong> f\u00fcr die Weboberfl\u00e4che (standardm\u00e4\u00dfig 9443 f\u00fcr HTTPS).<\/li>\n\n\n\n<li><strong>Root- bzw. sudo-Rechte<\/strong> auf dem Host.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Portainer per Docker Compose installieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Am saubersten installierst du Portainer \u00fcber Compose. Lege eine <code>docker-compose.yml<\/code> mit folgendem Inhalt an:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>services:\n  portainer:\n    image: portainer\/portainer-ce:latest\n    container_name: portainer\n    restart: unless-stopped\n    ports:\n      - \"9443:9443\"\n    volumes:\n      - \/var\/run\/docker.sock:\/var\/run\/docker.sock\n      - portainer_data:\/data\n\nvolumes:\n  portainer_data:<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #85E89D\">services<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">  portainer<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    image<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #9ECBFF\">portainer\/portainer-ce:latest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    container_name<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #9ECBFF\">portainer<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    restart<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #9ECBFF\">unless-stopped<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    ports<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      - <\/span><span style=\"color: #9ECBFF\">\"9443:9443\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    volumes<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      - <\/span><span style=\"color: #9ECBFF\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      - <\/span><span style=\"color: #9ECBFF\">portainer_data:\/data<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">volumes<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">  portainer_data<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Starte den Stack anschlie\u00dfend:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>docker compose up -d<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">docker<\/span><span style=\"color: #9ECBFF\"> compose<\/span><span style=\"color: #9ECBFF\"> up<\/span><span style=\"color: #79B8FF\"> -d<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Zwei Dinge sind hier zentral: Der Mount von <code>\/var\/run\/docker.sock<\/code> gibt Portainer Zugriff auf die Docker Engine. Und das Named Volume <code>portainer_data<\/code> speichert deine Einstellungen dauerhaft \u2013 mehr dazu in <a href=\"https:\/\/netguide.io\/linux\/de\/docker-volumes-daten-persistent-speichern\/\">Docker Volumes<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Erste Einrichtung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u00d6ffne nun im Browser <code>https:\/\/SERVER-IP:9443<\/code>. Da Portainer ein selbstsigniertes Zertifikat nutzt, musst du die Sicherheitswarnung einmalig best\u00e4tigen. Beim ersten Aufruf legst du einen <strong>Admin-Benutzer<\/strong> mit sicherem Passwort an.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wichtig:<\/strong> Erledige das z\u00fcgig. Aus Sicherheitsgr\u00fcnden sperrt Portainer die Ersteinrichtung, wenn der Container zu lange ohne angelegten Admin l\u00e4uft. Passiert das, starte den Container einfach neu.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Was du mit Portainer machen kannst<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nach dem Login w\u00e4hlst du die lokale Umgebung aus und hast Zugriff auf:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Container:<\/strong> starten, stoppen, neu starten, Logs und Statistiken einsehen, in eine Konsole springen.<\/li>\n\n\n\n<li><strong>Images:<\/strong> herunterladen, ansehen und ungenutzte entfernen.<\/li>\n\n\n\n<li><strong>Volumes &amp; Netzwerke:<\/strong> anlegen und verwalten \u2013 die Theorie dazu liefert <a href=\"https:\/\/netguide.io\/linux\/de\/docker-netzwerke-erklaert\/\">Docker Netzwerke erkl\u00e4rt<\/a>.<\/li>\n\n\n\n<li><strong>Stacks:<\/strong> komplette Compose-Setups direkt in der Oberfl\u00e4che bereitstellen.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Stacks: Compose in der Weboberfl\u00e4che<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Das Highlight sind die <strong>Stacks<\/strong>. Ein Stack ist nichts anderes als eine <code>docker-compose.yml<\/code>, die du direkt in Portainer einf\u00fcgst und startest. So verwaltest du Multi-Container-Anwendungen bequem im Browser, ohne dich per SSH einzuloggen. \u00c4nderungen an der YAML lassen sich direkt in der Oberfl\u00e4che vornehmen und neu ausrollen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Portainer aktualisieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Update ist unkompliziert: neues Image ziehen und den Container neu erstellen. Im Compose-Verzeichnis gen\u00fcgt:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>docker compose pull\ndocker compose up -d<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">docker<\/span><span style=\"color: #9ECBFF\"> compose<\/span><span style=\"color: #9ECBFF\"> pull<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">docker<\/span><span style=\"color: #9ECBFF\"> compose<\/span><span style=\"color: #9ECBFF\"> up<\/span><span style=\"color: #79B8FF\"> -d<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Weil deine Daten im Volume <code>portainer_data<\/code> liegen, bleiben alle Einstellungen erhalten. Diesen Vorgang kannst du auch von <a href=\"https:\/\/netguide.io\/linux\/de\/docker-container-automatisch-aktualisieren-watchtower\/\">Watchtower automatisieren lassen<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Portainer CE oder Business Edition?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer gibt es in zwei Varianten. F\u00fcr private Server und die meisten Homelabs reicht die kostenlose <strong>Community Edition (CE)<\/strong> vollst\u00e4ndig aus. Die Business Edition richtet sich an Teams und bietet Funktionen wie feingranulare Rollen und RBAC, die im Einzelbetrieb keinen Mehrwert bringen.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Funktion<\/th><th>CE<\/th><th>Business<\/th><\/tr><\/thead><tbody><tr><td>Container-Verwaltung<\/td><td>Ja<\/td><td>Ja<\/td><\/tr><tr><td>Stacks \/ Compose<\/td><td>Ja<\/td><td>Ja<\/td><\/tr><tr><td>Rollen &#038; Rechte<\/td><td>Basis<\/td><td>Erweitert (RBAC)<\/td><\/tr><tr><td>Preis<\/td><td>Kostenlos<\/td><td>Ab bestimmter Node-Zahl kostenpflichtig<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Zugriff absichern<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer hat weitreichende Kontrolle \u00fcber deinen Docker-Host \u2013 wer sich einloggt, kann Container starten und stoppen. Deshalb solltest du den Zugang niemals ungesch\u00fctzt ins Internet stellen. Vergib beim ersten Start ein <strong>starkes Admin-Passwort<\/strong> und stelle Portainer im Idealfall nur \u00fcber einen Reverse-Proxy mit HTTPS bereit.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Erreiche Portainer nur im lokalen Netz oder \u00fcber ein VPN wie WireGuard.<\/li>\n\n<li>Setze einen Reverse-Proxy (z. B. Nginx oder Traefik) mit TLS-Zertifikat davor.<\/li>\n\n<li>Aktiviere die automatische Abmeldung nach Inaktivit\u00e4t in den Einstellungen.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Wann sich Portainer lohnt \u2013 und wann nicht<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer ist ideal, wenn du den \u00dcberblick \u00fcber viele Container behalten oder Kollegen ohne Terminal-Kenntnisse einen kontrollierten Zugriff geben willst. F\u00fcr die schnelle Statusabfrage bleibt <code>docker ps<\/code> auf der Kommandozeile trotzdem oft schneller. Sieh die Weboberfl\u00e4che als Erg\u00e4nzung, nicht als vollst\u00e4ndigen Ersatz f\u00fcr die CLI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein praktischer Vorteil: \u00dcber die Stack-Funktion kannst du komplette <code>docker-compose.yml<\/code>-Dateien direkt im Browser einf\u00fcgen und deployen. \u00c4nderungen an Umgebungsvariablen oder Ports erledigst du so ohne SSH-Sitzung. Behalte dabei im Hinterkopf, dass Portainer selbst ein Container ist und regelm\u00e4\u00dfige Updates braucht: Nur eine aktuelle Version schlie\u00dft bekannte Sicherheitsl\u00fccken. Und weil das Web-UI \u00fcber den Docker-Socket weitreichende Rechte am Host besitzt, ist ein kompromittierter Portainer-Zugang faktisch gleichbedeutend mit vollem Zugriff auf den Server \u2013 ein weiterer Grund, den Zugang konsequent hinter VPN oder Reverse-Proxy zu verstecken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Praktisch im Alltag: \u00dcber das Dashboard sp\u00fcrst du verwaiste Images und ungenutzte Volumes auf, die still Speicherplatz belegen, und entfernst sie mit wenigen Klicks. F\u00fcr Einsteiger senkt Portainer damit die H\u00fcrde sp\u00fcrbar \u2013 du siehst auf einen Blick, welche Container laufen, wie viel Speicher sie verbrauchen und wo Handlungsbedarf besteht, ohne dir daf\u00fcr Dutzende CLI-Befehle merken zu m\u00fcssen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">H\u00e4ufige Fragen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die wichtigsten Fragen rund um Installation und Betrieb von Portainer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Verliere ich meine Container, wenn ich Portainer entferne?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nein. Portainer ist nur eine Verwaltungsschicht. Entfernst du den Portainer-Container, laufen deine anderen Container unver\u00e4ndert weiter, weil sie direkt vom Docker-Daemon verwaltet werden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wie aktualisiere ich Portainer?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Du stoppst und l\u00f6schst den alten Container, ziehst das neue Image mit <code>docker pull portainer\/portainer-ce:latest<\/code> und startest ihn mit demselben Volume erneut. Deine Einstellungen bleiben im Volume erhalten.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Kann Portainer mehrere Docker-Hosts verwalten?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ja, \u00fcber sogenannte Environments oder den Portainer-Agent lassen sich mehrere Hosts und sogar Kubernetes-Cluster aus einer Oberfl\u00e4che steuern.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Fazit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer macht Docker zug\u00e4nglich: Statt langer Befehle verwaltest du deine Container komfortabel im Browser \u2013 inklusive Logs, Stacks und einem klaren \u00dcberblick \u00fcber die ganze Umgebung. F\u00fcr den produktiven Einsatz solltest du die Oberfl\u00e4che nicht ungesch\u00fctzt ins Internet stellen, sondern hinter einen Reverse Proxy wie den <a href=\"https:\/\/netguide.io\/linux\/de\/mit-dem-nginx-proxy-manager-docker-container-ueber-das-internet-verfuegbar-machen\/\">Nginx Proxy Manager<\/a> setzen.<\/p>\n<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4799\" data-bid=\"2\" data-placement=\"4800\">PGRpdiBpZD0ibmV0Z3VpZGVhLTI3OTcwNTc4NjEiIGNsYXNzPSJuZXRndWlkZWEtYWZ0ZXItY29udGVudCBuZXRndWlkZWEtZW50aXR5LXBsYWNlbWVudCI+PGRpdiBjbGFzcz0ibmV0Z3VpZGVhLWFkbGFiZWwiPkFkdmVydGlzZW1lbnRzPC9kaXY+PHNjcmlwdCBhc3luYyBzcmM9Ii8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzP2NsaWVudD1jYS1wdWItNjI1ODU1NjI1NzI0NTk5OCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PGlucyBjbGFzcz0iYWRzYnlnb29nbGUiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyIgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi02MjU4NTU2MjU3MjQ1OTk4IiAKZGF0YS1hZC1zbG90PSI0NTU5Nzg1MDAyIiAKZGF0YS1hZC1mb3JtYXQ9ImF1dG8iPjwvaW5zPgo8c2NyaXB0PiAKKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsgCjwvc2NyaXB0Pgo8L2Rpdj4=<\/script>","protected":false},"excerpt":{"rendered":"<p>Portainer installieren und Docker per Weboberfl\u00e4che verwalten: Installation mit Compose, erste Einrichtung, Stacks, Container und Updates Schritt f\u00fcr Schritt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[231,9],"tags":[],"class_list":["post-4928","post","type-post","status-publish","format-standard","hentry","category-docker","category-linux"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Tobias Pries","author_link":"https:\/\/netguide.io\/linux\/author\/tobias-pries\/"},"uagb_comment_info":0,"uagb_excerpt":"Portainer installieren und Docker per Weboberfl\u00e4che verwalten: Installation mit Compose, erste Einrichtung, Stacks, Container und Updates Schritt f\u00fcr Schritt.","brizy_media":[],"_links":{"self":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/comments?post=4928"}],"version-history":[{"count":2,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4928\/revisions"}],"predecessor-version":[{"id":4993,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4928\/revisions\/4993"}],"wp:attachment":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/media?parent=4928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/categories?post=4928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/tags?post=4928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}