{"id":5148,"date":"2024-08-26T10:00:00","date_gmt":"2024-08-26T10:00:00","guid":{"rendered":"https:\/\/netguide.io\/linux\/verwendung-der-tz-zeitzonenangabe-in-docker-anleitung-und-verfuegbare-zeitzonen-2\/"},"modified":"2024-08-26T10:00:00","modified_gmt":"2024-08-26T10:00:00","slug":"verwendung-der-tz-zeitzonenangabe-in-docker-anleitung-und-verfuegbare-zeitzonen-2","status":"publish","type":"post","link":"https:\/\/netguide.io\/linux\/de\/verwendung-der-tz-zeitzonenangabe-in-docker-anleitung-und-verfuegbare-zeitzonen-2\/","title":{"rendered":"Verwendung der TZ-Zeitzonenangabe in Docker: Anleitung und verf\u00fcgbare Zeitzonen"},"content":{"rendered":"<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4797\" data-bid=\"2\" data-placement=\"4798\">PGRpdiBpZD0ibmV0Z3VpZGVhLTM2NzA5MTYwIiBjbGFzcz0ibmV0Z3VpZGVhLWJlZm9yZS1jb250ZW50IG5ldGd1aWRlYS1lbnRpdHktcGxhY2VtZW50Ij48ZGl2IGNsYXNzPSJuZXRndWlkZWEtYWRsYWJlbCI+QWR2ZXJ0aXNlbWVudHM8L2Rpdj48c2NyaXB0IGFzeW5jIHNyYz0iLy9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvanMvYWRzYnlnb29nbGUuanM\/Y2xpZW50PWNhLXB1Yi02MjU4NTU2MjU3MjQ1OTk4IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48aW5zIGNsYXNzPSJhZHNieWdvb2dsZSIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IiBkYXRhLWFkLWNsaWVudD0iY2EtcHViLTYyNTg1NTYyNTcyNDU5OTgiIApkYXRhLWFkLXNsb3Q9IjM0OTQxMTUzNDIiIApkYXRhLWFkLWZvcm1hdD0iYXV0byI+PC9pbnM+CjxzY3JpcHQ+IAooYWRzYnlnb29nbGUgPSB3aW5kb3cuYWRzYnlnb29nbGUgfHwgW10pLnB1c2goe30pOyAKPC9zY3JpcHQ+CjwvZGl2Pg==<\/script>\n<p class=\"wp-block-paragraph\">Die <strong>TZ-Zeitzonenangabe in Docker<\/strong> sorgt daf\u00fcr, dass deine Container mit der richtigen lokalen Uhrzeit arbeiten &ndash; unabh\u00e4ngig davon, in welcher Zeitzone der Host oder der Cloud-Server l\u00e4uft. Gerade bei Logs, Cron-Jobs und zeitgesteuerten Abl\u00e4ufen ist das entscheidend, denn eine falsch gesetzte Zeitzone f\u00fchrt schnell zu verwirrenden Zeitstempeln oder Aufgaben, die zur falschen Uhrzeit starten. In dieser Anleitung erf\u00e4hrst du, wie du die <code>TZ<\/code>-Umgebungsvariable setzt, wie sie sich auswirkt und welche Zeitzonen dir zur Verf\u00fcgung stehen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was ist die TZ-Umgebungsvariable?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die <code>TZ<\/code>-Umgebungsvariable ist ein Standardmechanismus unter Linux, mit dem du die Zeitzone eines Prozesses festlegst. Programme lesen diese Variable aus und richten ihre Zeitberechnung danach aus. In einem Docker-Container funktioniert das genauso: Setzt du <code>TZ<\/code> beim Start, verwendet der Container die angegebene Zeitzone statt der Standardvorgabe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Standardm\u00e4\u00dfig starten die meisten offiziellen Images in der Zeitzone <strong>UTC<\/strong>. Das ist bewusst so gew\u00e4hlt, weil UTC keine Sommer-\/Winterzeit kennt und weltweit eindeutig ist. F\u00fcr viele Anwendungen &ndash; etwa Datenbanken &ndash; ist UTC sogar die empfohlene Einstellung. Sobald du aber lokale Zeitstempel oder lokal getaktete Aufgaben brauchst, willst du die Zeitzone gezielt \u00fcberschreiben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Warum ist die Zeitzonenkonfiguration wichtig?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Eine korrekt gesetzte Zeitzone ist in mehreren Situationen entscheidend:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Zeitstempel:<\/strong> Anwendungen, die Zeitstempel erzeugen (etwa in Logs oder Datenbankeintr\u00e4gen), schreiben diese in der eingestellten Zeitzone. Das erleichtert die sp\u00e4tere Auswertung erheblich.<\/li>\n\n\n\n<li><strong>Geplante Aufgaben:<\/strong> Cron-Jobs und andere zeitbasierte Prozesse laufen nur dann zur erwarteten lokalen Uhrzeit, wenn die Zeitzone stimmt.<\/li>\n\n\n\n<li><strong>Globale Anwendungen:<\/strong> Wird deine Anwendung von Nutzern in verschiedenen Regionen genutzt, sorgt die richtige Zeitzone f\u00fcr nachvollziehbare, korrekt lokalisierte Zeitangaben.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">So verwendest du die TZ-Zeitzonenangabe in Docker<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Um die Zeitzone eines Containers festzulegen, \u00fcbergibst du die <code>TZ<\/code>-Umgebungsvariable beim Start. Das geht \u00fcber den Schalter <code>-e<\/code> (bzw. <code>--env<\/code>) im <code>docker run<\/code>-Befehl, \u00fcber eine <code>docker-compose.yml<\/code> oder direkt im Image \u00fcber das <code>ENV<\/code>-Statement im Dockerfile. Am flexibelsten ist die Variante \u00fcber eine Umgebungsvariable, weil du dieselbe Image-Basis in unterschiedlichen Zeitzonen betreiben kannst.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Beispiel 1: Container mit fester Zeitzone starten<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Angenommen, du m\u00f6chtest einen Container in der Zeitzone &#8222;Europe\/Berlin&#8220; starten. Dann verwendest du folgenden Befehl:<\/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\" data-code=\"docker run -e TZ=Europe\/Berlin dein-image\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><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: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">run<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">-e<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">TZ=Europe\/Berlin<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">dein-image<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Der Container l\u00e4uft nun in Berliner Zeit, egal welche Zeitzone das Host-System nutzt. Pr\u00fcfen kannst du das direkt im laufenden Container mit dem <code>date<\/code>-Befehl:<\/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\" data-code=\"docker exec mein-container date\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><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: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">exec<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">mein-container<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">date<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Beispiel 2: Zeitzone in Docker Compose setzen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn du deine Container mit Docker Compose verwaltest, hinterlegst du die Zeitzone im <code>environment<\/code>-Abschnitt des jeweiligen Dienstes. Das ist \u00fcbersichtlich und l\u00e4sst sich versionieren:<\/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\" data-code=\"services:\n  app:\n    image: dein-image:latest\n    environment:\n      - TZ=Europe\/Berlin\n    restart: unless-stopped\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><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\">services:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  <\/span><span style=\"color: #B392F0\">app:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #B392F0\">image:<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">dein-image:latest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #B392F0\">environment:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      <\/span><span style=\"color: #B392F0\">-<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">TZ=Europe\/Berlin<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #B392F0\">restart:<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">unless-stopped<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Mehr zum Umgang mit Umgebungsvariablen in Compose &ndash; etwa \u00fcber eine zentrale <code>.env<\/code>-Datei &ndash; findest du in unserem Beitrag zu <a href=\"\/linux\/de\/docker-compose-env-umgebungsvariablen\/\">Umgebungsvariablen in Docker Compose<\/a>. Wie du mit der <code>restart<\/code>-Direktive daf\u00fcr sorgst, dass Container automatisch wieder anlaufen, zeigt unsere Anleitung zur <a href=\"\/linux\/de\/docker-restart-policy-container-automatisch-starten\/\">Docker Restart Policy<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Beispiel 3: Zeitzone fest im Dockerfile hinterlegen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Soll ein Image von vornherein eine bestimmte Zeitzone mitbringen, setzt du <code>TZ<\/code> direkt im Dockerfile. Bei manchen schlanken Images musst du zus\u00e4tzlich die passenden Zeitzonendaten installieren und den Symlink setzen:<\/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\" data-code=\"FROM ubuntu:22.04\nENV TZ=Europe\/Berlin\nRUN ln -snf \/usr\/share\/zoneinfo\/$TZ \/etc\/localtime &amp;&amp; echo $TZ &gt; \/etc\/timezone\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><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\">FROM<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">ubuntu:22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">ENV<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">TZ=Europe\/Berlin<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">RUN<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">ln<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">-snf<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">\/usr\/share\/zoneinfo\/$TZ<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">\/etc\/localtime<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">echo<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">$TZ<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&gt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">\/etc\/timezone<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Der <code>ln<\/code>-Befehl verkn\u00fcpft die Systemzeit fest mit der gew\u00fcnschten Zeitzone. In vielen offiziellen Images reicht allerdings schon das reine Setzen von <code>ENV TZ<\/code>, weil die Zeitzonendaten bereits enthalten sind.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Auswirkungen der TZ-Zeitzonenangabe<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Setzt du die <code>TZ<\/code>-Variable, wirkt sich das an mehreren Stellen aus:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Systemzeit im Container:<\/strong> Alle zeitabh\u00e4ngigen Operationen im Container basieren auf der festgelegten Zeitzone.<\/li>\n\n\n\n<li><strong>Logs und Zeitstempel:<\/strong> Jede erzeugte Zeitangabe &ndash; etwa in Logdateien &ndash; wird in der eingestellten Zeitzone ausgegeben.<\/li>\n\n\n\n<li><strong>Geplante Aufgaben:<\/strong> Cron-Jobs und andere zeitbasierte Aufgaben laufen zur korrekten lokalen Zeit der angegebenen Zeitzone.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Wichtig: Die <code>TZ<\/code>-Variable \u00e4ndert nur die Darstellung und Berechnung der lokalen Zeit. Der zugrunde liegende UTC-Zeitpunkt bleibt derselbe. Wenn Anwendungen intern konsequent mit UTC arbeiten, ist das ein Vorteil &ndash; die lokale Zeitzone dient dann vor allem der lesbaren Ausgabe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Liste der verf\u00fcgbaren Zeitzonen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker unterst\u00fctzt alle Zeitzonen der IANA-Zeitzonendatenbank (auch tz database genannt). Die Angaben folgen dem Format &#8222;Region\/Stadt&#8220;. Hier eine Auswahl h\u00e4ufig genutzter Zeitzonen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>UTC<\/strong> &ndash; Koordinierte Weltzeit, weltweiter Standard<\/li>\n\n\n\n<li><strong>Europe\/Berlin<\/strong> &ndash; Mitteleurop\u00e4ische Zeit<\/li>\n\n\n\n<li><strong>Europe\/London<\/strong> &ndash; Britische Zeit<\/li>\n\n\n\n<li><strong>America\/New_York<\/strong> &ndash; US-Ostk\u00fcste<\/li>\n\n\n\n<li><strong>America\/Los_Angeles<\/strong> &ndash; US-Westk\u00fcste<\/li>\n\n\n\n<li><strong>Asia\/Tokyo<\/strong> &ndash; Japanische Zeit<\/li>\n\n\n\n<li><strong>Asia\/Shanghai<\/strong> &ndash; Chinesische Zeit<\/li>\n\n\n\n<li><strong>Australia\/Sydney<\/strong> &ndash; Ostaustralische Zeit<\/li>\n\n\n\n<li><strong>Africa\/Johannesburg<\/strong> &ndash; S\u00fcdafrikanische Zeit<\/li>\n\n\n\n<li><strong>Pacific\/Auckland<\/strong> &ndash; Neuseel\u00e4ndische Zeit<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Eine vollst\u00e4ndige Liste aller Zeitzonen zeigt dir dein Linux-System mit folgendem Befehl 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\" data-code=\"timedatectl list-timezones\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><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\">timedatectl<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">list-timezones<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Alternativ findest du die komplette \u00dcbersicht auch <a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_tz_database_time_zones\">online in der Liste der IANA-Zeitzonen<\/a>. Achte darauf, den Bezeichner exakt zu \u00fcbernehmen, denn Docker akzeptiert nur die offiziellen IANA-Namen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zeitzone im laufenden Container pr\u00fcfen und Fehler vermeiden<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kommt es trotz gesetzter <code>TZ<\/code>-Variable zu falschen Zeiten, hilft eine kurze Kontrolle. Diese Punkte solltest du pr\u00fcfen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tippfehler im Bezeichner:<\/strong> <code>Europe\/Berlin<\/code> ist korrekt, <code>Europe\/berlin<\/code> hingegen nicht. Gro\u00df-\/Kleinschreibung und Schreibweise m\u00fcssen exakt stimmen.<\/li>\n\n\n\n<li><strong>Fehlende Zeitzonendaten:<\/strong> Sehr schlanke Images (etwa auf Alpine-Basis) bringen mitunter das Paket <code>tzdata<\/code> nicht mit. Installiere es im Dockerfile nach, falls die Zeitzone ignoriert wird.<\/li>\n\n\n\n<li><strong>Neustart n\u00f6tig:<\/strong> \u00c4nderst du die Umgebungsvariable, musst du den Container neu erstellen &ndash; ein einfacher Neustart ohne neue Variable reicht nicht.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die <strong>TZ-Zeitzonenangabe in Docker<\/strong> ist der einfachste Weg, Container mit der richtigen lokalen Uhrzeit zu betreiben. Du setzt die <code>TZ<\/code>-Umgebungsvariable per <code>docker run<\/code>, in der <code>docker-compose.yml<\/code> oder direkt im Dockerfile und stellst so sicher, dass Logs, Zeitstempel und geplante Aufgaben zur erwarteten Zeit laufen. Achte auf die exakten IANA-Bezeichner und pr\u00fcfe bei schlanken Images, ob die Zeitzonendaten vorhanden sind &ndash; dann arbeitet dein Container zuverl\u00e4ssig in jeder gew\u00fcnschten Zeitzone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">H\u00e4ufige Fragen (FAQ)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Welche Zeitzone nutzt ein Docker-Container standardm\u00e4\u00dfig?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die meisten offiziellen Images starten in <strong>UTC<\/strong>. UTC ist eindeutig und kennt keine Sommer-\/Winterzeit, weshalb es sich besonders f\u00fcr Server und Datenbanken eignet. Erst durch das Setzen der <code>TZ<\/code>-Variable wechselst du auf eine lokale Zeitzone.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wie setze ich die Zeitzone in Docker Compose?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Trage im jeweiligen Dienst unter <code>environment<\/code> den Eintrag <code>- TZ=Europe\/Berlin<\/code> ein. Nach einem <code>docker compose up -d<\/code> \u00fcbernimmt der Container die neue Zeitzone. Bestehende Container musst du daf\u00fcr neu erstellen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Warum \u00e4ndert sich die Zeit im Container trotz TZ-Variable nicht?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Meist fehlen bei sehr schlanken Images die Zeitzonendaten. Installiere in diesem Fall das Paket <code>tzdata<\/code> im Dockerfile nach. Pr\u00fcfe au\u00dferdem, ob du den Bezeichner exakt geschrieben und den Container nach der \u00c4nderung neu erstellt hast.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wo finde ich eine Liste aller g\u00fcltigen Zeitzonen?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Auf einem Linux-System listet <code>timedatectl list-timezones<\/code> alle verf\u00fcgbaren Zeitzonen auf. Online findest du dieselben Bezeichner in der IANA-Zeitzonendatenbank. Verwende immer das Format &#8222;Region\/Stadt&#8220;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sollte ich Container besser in UTC oder in lokaler Zeit betreiben?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Datenbanken und interne Verarbeitung ist UTC meist die bessere Wahl, weil es global eindeutig ist. F\u00fcr Anwendungen mit lokal getakteten Aufgaben oder gut lesbaren Logs bietet sich eine passende lokale Zeitzone \u00fcber die <code>TZ<\/code>-Variable an.<\/p>\n<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4799\" data-bid=\"2\" data-placement=\"4800\">PGRpdiBpZD0ibmV0Z3VpZGVhLTMxMTE3Mzk5OTAiIGNsYXNzPSJuZXRndWlkZWEtYWZ0ZXItY29udGVudCBuZXRndWlkZWEtZW50aXR5LXBsYWNlbWVudCI+PGRpdiBjbGFzcz0ibmV0Z3VpZGVhLWFkbGFiZWwiPkFkdmVydGlzZW1lbnRzPC9kaXY+PHNjcmlwdCBhc3luYyBzcmM9Ii8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzP2NsaWVudD1jYS1wdWItNjI1ODU1NjI1NzI0NTk5OCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PGlucyBjbGFzcz0iYWRzYnlnb29nbGUiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyIgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi02MjU4NTU2MjU3MjQ1OTk4IiAKZGF0YS1hZC1zbG90PSI0NTU5Nzg1MDAyIiAKZGF0YS1hZC1mb3JtYXQ9ImF1dG8iPjwvaW5zPgo8c2NyaXB0PiAKKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsgCjwvc2NyaXB0Pgo8L2Rpdj4=<\/script>","protected":false},"excerpt":{"rendered":"<p>TZ-Zeitzonenangabe in Docker richtig nutzen: Zeitzone per docker run, Compose oder Dockerfile setzen, verf\u00fcgbare IANA-Zeitzonen und Tipps zur Fehlersuche.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","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":[1],"tags":[],"class_list":["post-5148","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"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":"TZ-Zeitzonenangabe in Docker richtig nutzen: Zeitzone per docker run, Compose oder Dockerfile setzen, verf\u00fcgbare IANA-Zeitzonen und Tipps zur Fehlersuche.","brizy_media":[],"_links":{"self":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/5148","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=5148"}],"version-history":[{"count":0,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/5148\/revisions"}],"wp:attachment":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/media?parent=5148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/categories?post=5148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/tags?post=5148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}