{"id":4915,"date":"2026-08-10T21:45:22","date_gmt":"2026-08-10T21:45:22","guid":{"rendered":"https:\/\/netguide.io\/linux\/docker-container-automatisch-aktualisieren-watchtower\/"},"modified":"2026-08-10T21:51:16","modified_gmt":"2026-08-10T21:51:16","slug":"docker-container-automatisch-aktualisieren-watchtower","status":"publish","type":"post","link":"https:\/\/netguide.io\/linux\/de\/docker-container-automatisch-aktualisieren-watchtower\/","title":{"rendered":"Docker Container automatisch aktualisieren mit Watchtower"},"content":{"rendered":"<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4797\" data-bid=\"2\" data-placement=\"4798\">PGRpdiBpZD0ibmV0Z3VpZGVhLTE0NjgzMzQwNTEiIGNsYXNzPSJuZXRndWlkZWEtYmVmb3JlLWNvbnRlbnQgbmV0Z3VpZGVhLWVudGl0eS1wbGFjZW1lbnQiPjxkaXYgY2xhc3M9Im5ldGd1aWRlYS1hZGxhYmVsIj5BZHZlcnRpc2VtZW50czwvZGl2PjxzY3JpcHQgYXN5bmMgc3JjPSIvL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9qcy9hZHNieWdvb2dsZS5qcz9jbGllbnQ9Y2EtcHViLTYyNTg1NTYyNTcyNDU5OTgiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxpbnMgY2xhc3M9ImFkc2J5Z29vZ2xlIiBzdHlsZT0iZGlzcGxheTpibG9jazsiIGRhdGEtYWQtY2xpZW50PSJjYS1wdWItNjI1ODU1NjI1NzI0NTk5OCIgCmRhdGEtYWQtc2xvdD0iMzQ5NDExNTM0MiIgCmRhdGEtYWQtZm9ybWF0PSJhdXRvIj48L2lucz4KPHNjcmlwdD4gCihhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2dsZSB8fCBbXSkucHVzaCh7fSk7IAo8L3NjcmlwdD4KPC9kaXY+<\/script>\n<p class=\"wp-block-paragraph\">Container-Images bekommen st\u00e4ndig Updates \u2013 f\u00fcr neue Funktionen und vor allem f\u00fcr Sicherheitsl\u00fccken. Sie manuell einzuspielen kostet Zeit und wird schnell vergessen. Die L\u00f6sung: Mit <strong>Watchtower aktualisierst du deine Docker-Container automatisch<\/strong>. In dieser Anleitung installierst du Watchtower per Docker Compose, legst einen Zeitplan fest, richtest Benachrichtigungen ein und lernst, wie du einzelne Container gezielt ausschlie\u00dft.<\/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=\"#automatische-updates-sinnvoll-oder-riskant\" class=\"uagb-toc-link__trigger\">Automatische Updates: sinnvoll oder riskant?<\/a><li class=\"uagb-toc__list\"><a href=\"#wie-funktioniert-watchtower\" class=\"uagb-toc-link__trigger\">Wie funktioniert Watchtower?<\/a><li class=\"uagb-toc__list\"><a href=\"#watchtower-per-docker-compose-installieren\" class=\"uagb-toc-link__trigger\">Watchtower per Docker Compose installieren<\/a><li class=\"uagb-toc__list\"><a href=\"#zeitplan-und-wichtige-optionen\" class=\"uagb-toc-link__trigger\">Zeitplan und wichtige Optionen<\/a><li class=\"uagb-toc__list\"><a href=\"#einzelne-container-von-updates-ausschlie\u00dfen\" class=\"uagb-toc-link__trigger\">Einzelne Container von Updates ausschlie\u00dfen<\/a><li class=\"uagb-toc__list\"><a href=\"#benachrichtigungen-einrichten\" class=\"uagb-toc-link__trigger\">Benachrichtigungen einrichten<\/a><li class=\"uagb-toc__list\"><a href=\"#nur-benachrichtigen-statt-automatisch-updaten\" class=\"uagb-toc-link__trigger\">Nur benachrichtigen statt automatisch updaten<\/a><li class=\"uagb-toc__list\"><a href=\"#sicherheitshinweise\" class=\"uagb-toc-link__trigger\">Sicherheitshinweise<\/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\">Automatische Updates: sinnvoll oder riskant?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Automatische Updates halten deine Dienste sicher und aktuell, ohne dass du dich k\u00fcmmern musst. Sie haben aber auch eine Kehrseite, die du kennen solltest:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Vorteil:<\/strong> Sicherheitsupdates landen zeitnah auf dem System, ganz ohne manuelles Eingreifen.<\/li>\n\n\n\n<li><strong>Vorteil:<\/strong> Weniger Wartungsaufwand \u2013 gerade bei vielen Containern im Homelab.<\/li>\n\n\n\n<li><strong>Nachteil:<\/strong> Ein fehlerhaftes Update kann einen Dienst lahmlegen. Bei kritischen Anwendungen ist ein Backup und ein fester Image-Tag Pflicht.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Praktischer Kompromiss: unkritische Dienste automatisch aktualisieren, kritische nur \u00fcberwachen und selbst updaten. Wie das geht, zeigen wir weiter unten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Wie funktioniert Watchtower?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Watchtower l\u00e4uft selbst als Container. In einem festgelegten Intervall pr\u00fcft es f\u00fcr jeden \u00fcberwachten Container, ob im Registry (z. B. Docker Hub) ein neueres Image mit demselben Tag vorliegt. Ist das der Fall, l\u00e4dt Watchtower das neue Image, stoppt den alten Container und startet ihn <strong>mit exakt denselben Optionen<\/strong> neu \u2013 gleiche Ports, Volumes und Umgebungsvariablen. Optional r\u00e4umt es das alte Image anschlie\u00dfend auf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voraussetzung ist eine lauff\u00e4hige Docker-Umgebung. Falls du Compose noch nicht eingerichtet hast, hilft dir unsere Anleitung <a href=\"https:\/\/netguide.io\/linux\/de\/docker-compose-installieren-ubuntu-debian\/\">Docker Compose installieren<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Watchtower per Docker Compose installieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Lege eine <code>docker-compose.yml<\/code> mit folgendem Inhalt an. Das Image <code>containrrr\/watchtower<\/code> ist die verbreitete Standard-Variante:<\/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  watchtower:\n    image: containrrr\/watchtower\n    container_name: watchtower\n    restart: unless-stopped\n    volumes:\n      - \/var\/run\/docker.sock:\/var\/run\/docker.sock\n    environment:\n      - WATCHTOWER_CLEANUP=true\n      - WATCHTOWER_SCHEDULE=0 0 4 * * *\n      - TZ=Europe\/Berlin<\/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\">  watchtower<\/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\">containrrr\/watchtower<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    container_name<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #9ECBFF\">watchtower<\/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\">    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: #85E89D\">    environment<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      - <\/span><span style=\"color: #9ECBFF\">WATCHTOWER_CLEANUP=true<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      - <\/span><span style=\"color: #9ECBFF\">WATCHTOWER_SCHEDULE=0 0 4 * * *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      - <\/span><span style=\"color: #9ECBFF\">TZ=Europe\/Berlin<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Anschlie\u00dfend startest du Watchtower:<\/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\">Wichtig ist der Mount von <code>\/var\/run\/docker.sock<\/code>: Nur so kann Watchtower mit der Docker Engine kommunizieren und Container verwalten. Standardm\u00e4\u00dfig \u00fcberwacht Watchtower <strong>alle<\/strong> laufenden Container auf dem Host.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Zeitplan und wichtige Optionen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u00dcber Umgebungsvariablen steuerst du das Verhalten. Diese sind besonders n\u00fctzlich:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Variable<\/th><th>Bedeutung<\/th><\/tr><\/thead><tbody><tr><td><code>WATCHTOWER_SCHEDULE<\/code><\/td><td>Zeitplan im 6-Feld-Cron-Format (inkl. Sekunden). Beispiel <code>0 0 4 * * *<\/code> = t\u00e4glich um 4 Uhr<\/td><\/tr><tr><td><code>WATCHTOWER_CLEANUP<\/code><\/td><td>Entfernt alte Images nach dem Update (<code>true<\/code>\/<code>false<\/code>)<\/td><\/tr><tr><td><code>WATCHTOWER_ROLLING_RESTART<\/code><\/td><td>Aktualisiert Container nacheinander statt alle gleichzeitig<\/td><\/tr><tr><td><code>WATCHTOWER_MONITOR_ONLY<\/code><\/td><td>Nur pr\u00fcfen und benachrichtigen, nicht automatisch aktualisieren<\/td><\/tr><tr><td><code>WATCHTOWER_LABEL_ENABLE<\/code><\/td><td>Nur Container mit passendem Label \u00fcberwachen (Opt-in statt alle)<\/td><\/tr><tr><td><code>TZ<\/code><\/td><td>Zeitzone, damit der Zeitplan korrekt greift<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Alternativ zum festen Zeitplan kannst du \u00fcber <code>WATCHTOWER_POLL_INTERVAL<\/code> ein Intervall in Sekunden angeben (Standard: alle 24 Stunden). Nutze entweder das eine oder das andere.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Einzelne Container von Updates ausschlie\u00dfen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht jeder Container soll automatisch aktualisiert werden. \u00dcber ein <strong>Label<\/strong> am jeweiligen Container schlie\u00dft du ihn aus. Erg\u00e4nze dazu in dessen Compose-Definition:<\/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  meine-datenbank:\n    image: postgres:16\n    labels:\n      - \"com.centurylinklabs.watchtower.enable=false\"<\/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\">  meine-datenbank<\/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\">postgres:16<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    labels<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      - <\/span><span style=\"color: #9ECBFF\">\"com.centurylinklabs.watchtower.enable=false\"<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Umgekehrt kannst du mit <code>WATCHTOWER_LABEL_ENABLE=true<\/code> das Prinzip umdrehen: Dann \u00fcberwacht Watchtower nur noch Container, die ausdr\u00fccklich das Label <code>...watchtower.enable=true<\/code> tragen. Das ist die sicherere Variante, wenn du volle Kontrolle behalten willst.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Benachrichtigungen einrichten<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Watchtower kann dich nach jedem Durchlauf informieren \u2013 etwa per Telegram, Discord, Slack oder E-Mail. Die Konfiguration erfolgt \u00fcber einen sogenannten Shoutrrr-URL. Beispiel f\u00fcr Telegram:<\/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>environment:\n  - WATCHTOWER_SCHEDULE=0 0 4 * * *\n  - WATCHTOWER_NOTIFICATIONS=shoutrrr\n  - WATCHTOWER_NOTIFICATION_URL=telegram:\/\/BOT_TOKEN@telegram\/?chats=CHAT_ID<\/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\">environment<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  - <\/span><span style=\"color: #9ECBFF\">WATCHTOWER_SCHEDULE=0 0 4 * * *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  - <\/span><span style=\"color: #9ECBFF\">WATCHTOWER_NOTIFICATIONS=shoutrrr<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  - <\/span><span style=\"color: #9ECBFF\">WATCHTOWER_NOTIFICATION_URL=telegram:\/\/BOT_TOKEN@telegram\/?chats=CHAT_ID<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Ersetze <code>BOT_TOKEN<\/code> und <code>CHAT_ID<\/code> durch deine Werte. F\u00fcr andere Dienste \u00e4ndert sich lediglich das URL-Schema (z. B. <code>discord:\/\/<\/code> oder <code>smtp:\/\/<\/code> f\u00fcr E-Mail).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Nur benachrichtigen statt automatisch updaten<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">M\u00f6chtest du die Kontrolle behalten und nur erfahren, <em>wann<\/em> ein Update verf\u00fcgbar ist, kombinierst du den Monitor-Modus mit Benachrichtigungen:<\/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>environment:\n  - WATCHTOWER_MONITOR_ONLY=true\n  - WATCHTOWER_NOTIFICATIONS=shoutrrr\n  - WATCHTOWER_NOTIFICATION_URL=telegram:\/\/BOT_TOKEN@telegram\/?chats=CHAT_ID<\/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\">environment<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  - <\/span><span style=\"color: #9ECBFF\">WATCHTOWER_MONITOR_ONLY=true<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  - <\/span><span style=\"color: #9ECBFF\">WATCHTOWER_NOTIFICATIONS=shoutrrr<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  - <\/span><span style=\"color: #9ECBFF\">WATCHTOWER_NOTIFICATION_URL=telegram:\/\/BOT_TOKEN@telegram\/?chats=CHAT_ID<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Watchtower spielt dann keine Updates ein, sondern meldet nur, f\u00fcr welche Container ein neues Image bereitliegt. Das Aktualisieren \u00fcbernimmst du selbst.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Sicherheitshinweise<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Feste Tags nutzen:<\/strong> Verwende nach M\u00f6glichkeit konkrete Versions-Tags (z. B. <code>postgres:16<\/code>) statt <code>latest<\/code>. So verhinderst du unerwartete Major-Updates.<\/li>\n\n\n\n<li><strong>Backups einplanen:<\/strong> Sichere Daten-Volumes regelm\u00e4\u00dfig, damit du nach einem misslungenen Update zur\u00fcck kannst.<\/li>\n\n\n\n<li><strong>Docker-Socket sch\u00fctzen:<\/strong> Watchtower hat \u00fcber den Socket vollen Zugriff auf Docker. Betreibe den Container nur auf Systemen, denen du vertraust.<\/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\">Fazit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Watchtower nimmt dir das l\u00e4stige manuelle Aktualisieren ab und h\u00e4lt deine <strong>Docker-Container automatisch aktuell<\/strong>. \u00dcber Zeitplan, Labels und den Monitor-Modus beh\u00e4ltst du dabei die volle Kontrolle dar\u00fcber, was wann passiert. F\u00fcr produktive Dienste empfehlen wir feste Image-Tags, regelm\u00e4\u00dfige Backups deiner <a href=\"https:\/\/netguide.io\/linux\/de\/docker-volumes-daten-persistent-speichern\/\">Docker Volumes<\/a> und \u2013 bei kritischen Containern \u2013 den reinen Benachrichtigungsmodus. Damit dein Host schlank bleibt, kombinierst du Watchtower mit dem regelm\u00e4\u00dfigen <a href=\"https:\/\/netguide.io\/linux\/de\/docker-aufraeumen-speicherplatz-freigeben\/\">Aufr\u00e4umen ungenutzter Images<\/a>. Passend dazu: unsere Gr\u00fcnde f\u00fcrs <a href=\"https:\/\/netguide.io\/linux\/de\/5-grunde-furs-selfhosting\/\">Selfhosting<\/a>.<\/p>\n<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4799\" data-bid=\"2\" data-placement=\"4800\">PGRpdiBpZD0ibmV0Z3VpZGVhLTI1MzkwMTgxODIiIGNsYXNzPSJuZXRndWlkZWEtYWZ0ZXItY29udGVudCBuZXRndWlkZWEtZW50aXR5LXBsYWNlbWVudCI+PGRpdiBjbGFzcz0ibmV0Z3VpZGVhLWFkbGFiZWwiPkFkdmVydGlzZW1lbnRzPC9kaXY+PHNjcmlwdCBhc3luYyBzcmM9Ii8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzP2NsaWVudD1jYS1wdWItNjI1ODU1NjI1NzI0NTk5OCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PGlucyBjbGFzcz0iYWRzYnlnb29nbGUiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyIgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi02MjU4NTU2MjU3MjQ1OTk4IiAKZGF0YS1hZC1zbG90PSI0NTU5Nzg1MDAyIiAKZGF0YS1hZC1mb3JtYXQ9ImF1dG8iPjwvaW5zPgo8c2NyaXB0PiAKKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsgCjwvc2NyaXB0Pgo8L2Rpdj4=<\/script>","protected":false},"excerpt":{"rendered":"<p>Mit Watchtower aktualisierst du Docker-Container automatisch: Installation per Compose, Zeitplan, Benachrichtigungen und wie du Updates gezielt steuerst.<\/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-4915","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":"Mit Watchtower aktualisierst du Docker-Container automatisch: Installation per Compose, Zeitplan, Benachrichtigungen und wie du Updates gezielt steuerst.","brizy_media":[],"_links":{"self":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4915","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=4915"}],"version-history":[{"count":1,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4915\/revisions"}],"predecessor-version":[{"id":4924,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4915\/revisions\/4924"}],"wp:attachment":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/media?parent=4915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/categories?post=4915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/tags?post=4915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}