<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Docker Archives - Rhein-Ruhr-Informatik</title>
	<atom:link href="https://rhein-ruhr-informatik.de/category/articles/docker/feed/" rel="self" type="application/rss+xml" />
	<link>https://rhein-ruhr-informatik.de/category/articles/docker/</link>
	<description></description>
	<lastBuildDate>Tue, 12 Aug 2025 10:40:46 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://rhein-ruhr-informatik.de/wp-content/uploads/2025/03/cropped-favicon-32x32.png</url>
	<title>Docker Archives - Rhein-Ruhr-Informatik</title>
	<link>https://rhein-ruhr-informatik.de/category/articles/docker/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Windows in einem Docker-Container? Ja, wirklich!</title>
		<link>https://rhein-ruhr-informatik.de/2025/07/31/windows-in-einem-docker-container/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Thu, 31 Jul 2025 12:28:33 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Virtualization]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=833</guid>

					<description><![CDATA[<p>Wenn man in einem Linux- oder macOS-Haushalt lebt, stößt man früher oder später auf das altbekannte Problem: Man braucht plötzlich eine Anwendung, die nur unter Windows läuft. Sei es ein obskures BIOS-Tool, das sich zwar per Wine starten lässt, aber schlichtweg keine brauchbaren Ergebnisse liefert. Für technisch versierte Menschen lautet<a class="moretag" href="https://rhein-ruhr-informatik.de/2025/07/31/windows-in-einem-docker-container/"> Weiterlesen&#8230;</a></p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/07/31/windows-in-einem-docker-container/">Windows in einem Docker-Container? Ja, wirklich!</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Wenn man in einem Linux- oder macOS-Haushalt lebt, stößt man früher oder später auf das altbekannte Problem: Man braucht plötzlich eine Anwendung, die nur unter Windows läuft. Sei es ein obskures BIOS-Tool, das sich zwar per Wine starten lässt, aber schlichtweg keine brauchbaren Ergebnisse liefert. Für technisch versierte Menschen lautet der erste Impuls in der Regel: „Ich richte mir eben eine VM ein.“ Klar, geht – aber einfach ist das nicht unbedingt.</p>



<p>Zunächst benötigt man einen Hypervisor, dann eine passende ISO-Datei, muss die VM konfigurieren, Partitionen einrichten, Windows installieren, Treiber hinzufügen und so weiter. Kurzum: Es ist machbar, aber nicht unbedingt angenehm.</p>



<p>Doch was, wenn ich dir sage, dass du eine vollständige Windows-Installation in einem Docker-Container starten kannst – mit geteiltem Speicher, RDP-Zugang und optionalem VLAN-Support? Klingt verrückt? Ist es auch ein bisschen. Aber es funktioniert.</p>



<p><strong>Die Idee hinter dem Projekt</strong></p>



<p>Ein Entwickler namens Kroese hat auf GitHub ein Projekt veröffentlicht, das genau das ermöglicht. Ein Docker-Container, der automatisch eine frische Windows-Installation einrichtet – und das ganz ohne manuelles Setup. Man startet einfach den Container, wartet ein paar Minuten und bekommt eine vollständig einsatzbereite Windows-Umgebung. Zugriff erfolgt bequem über den Browser oder per RDP.</p>



<p>Und das Beste: Man muss Windows nicht mal selbst installieren. Der Container übernimmt den kompletten Prozess – von der Image-Beschaffung bis zur Einrichtung.</p>



<p><strong>Wie funktioniert das technisch?</strong></p>



<p>Wer genau hinsieht, erkennt im Docker-Command das Flag, das /dev/kvm durchreicht – also den Kernel-basierten Virtualisierungsmechanismus von Linux. Kurz gesagt: Es handelt sich hierbei nicht um einen „echten“ Windows-Container, sondern um einen Linux-Container, der eine KVM-basierte VM aufsetzt. Also doch keine Magie, sondern eine clever automatisierte Lösung auf Basis bewährter Technologie.</p>



<p>Die Voraussetzung: Hardware-Virtualisierung muss vorhanden und aktiviert sein – sonst läuft hier gar nichts.</p>



<p><strong>Der große Vorteil: Komfort</strong></p>



<p>Das Besondere ist nicht die technische Innovation, sondern der enorme Komfortgewinn. Die lästigsten Aspekte einer Windows-Installation – wie Partitionierung, Ersteinrichtung oder die Wahl von Sprache und Tastaturlayout – fallen komplett weg. Alles läuft automatisiert ab.</p>



<p>Man erhält trotzdem alle Vorteile einer „normalen“ VM mit KVM: USB- und SATA-Passthrough, limitierbare CPU-Kerne und RAM, und wenn man will, sogar PCIe-Passthrough – wobei letzteres für ambitionierte Setups wahrscheinlich ohnehin in „richtige“ VMs gehört.</p>



<p><strong>Nutzung im Alltag: RDP statt VNC</strong></p>



<p>Die Web-Oberfläche des Containers nutzt VNC, was für den Anfang genügt – aber langsam ist und keinen Ton überträgt. RDP ist hier die bessere Wahl. Der Container unterstützt standardmäßig die Weiterleitung des RDP-Ports, sodass man einfach per Remotedesktop von Mac, Linux oder Windows aus zugreifen kann.</p>



<p>Dank Datenfreigabe kann man auch einfach Ordner vom Host einbinden – und so Dateien zwischen Windows und Linux austauschen. Der Standard-Container bietet 2 CPU-Kerne, 4 GB RAM und 64 GB Festplattenspeicher – alles über Umgebungsvariablen anpassbar.</p>



<p><strong>Multi-Windows? Kein Problem!</strong></p>



<p>Der Container unterstützt neben Windows 11 auch ältere Versionen – von XP bis Server 2022. Wer will, kann sogar abgespeckte Varianten wie Tiny11 oder Tiny10 nutzen – oder eigene ISO-Dateien einbinden. In einem Test liefen fünf Windows-Versionen parallel: XP, Vista, 7, 10 und 11 – alles gleichzeitig, auf einem Intel N100-System mit gerade einmal 18W Stromverbrauch.</p>



<p>Nur Windows 8.1 wollte nicht – aber wer vermisst das schon?</p>



<p><strong>Und die Lizenz?</strong></p>



<p>Die Windows-Images stammen, je nach Version, entweder direkt von Microsoft oder aus offenen Quellen wie Bob Pony. Neue Versionen sind unaktiviert, laufen aber ohne Einschränkungen 30 Tage lang. Wer länger nutzen will, muss einen gültigen Key eintragen. Das Projekt selbst enthält laut Entwickler keine proprietären Inhalte und basiert ausschließlich auf Open-Source-Code.</p>



<p><strong>Fazit: Einfach, praktisch, genial</strong></p>



<p>Ob für das schnelle Testen von Windows-Software, zum Spielen mit Legacy-Systemen oder für spezielle Tools wie BIOS-Editoren – dieses Docker-Projekt bietet eine komfortable, schlanke Lösung, bei der man auf nahezu nichts verzichten muss. Natürlich ersetzt es keine hochperformante VM mit dedizierter GPU, aber das will es auch gar nicht.</p>



<p>Was bleibt, ist ein beeindruckendes Beispiel dafür, was heute mit etwas Kreativität und offenen Standards möglich ist – ganz ohne den altbekannten Installationsfrust.</p>



<p><strong>Und wer weiß – vielleicht rettet dir Windows XP auch heute noch den Tag.</strong></p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/07/31/windows-in-einem-docker-container/">Windows in einem Docker-Container? Ja, wirklich!</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Wie man eine echte IP über Cloudflare erhält &#8211; Nginx Reverse Proxy &#8211; Docker</title>
		<link>https://rhein-ruhr-informatik.de/2025/01/29/echte-ip-ueber-cloudflare-erhaelt-nginx-reverse-proxy-docker/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Wed, 29 Jan 2025 17:58:22 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Cloudflare]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[cloudflare]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[nginx]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=359</guid>

					<description><![CDATA[<p>Einführung Wenn Sie Cloudflare als CDN- und DDoS-Schutzdienst verwenden, fungiert es als Vermittler zwischen Ihrer Website und ihren Besuchern. Das bedeutet, dass die für Ihren Webserver sichtbare IP-Adresse standardmäßig die von Cloudflare ist, nicht die des ursprünglichen Besuchers. Dies kann zu Problemen bei der Protokollierung, der Analyse und den auf<a class="moretag" href="https://rhein-ruhr-informatik.de/2025/01/29/echte-ip-ueber-cloudflare-erhaelt-nginx-reverse-proxy-docker/"> Weiterlesen&#8230;</a></p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/01/29/echte-ip-ueber-cloudflare-erhaelt-nginx-reverse-proxy-docker/">Wie man eine echte IP über Cloudflare erhält &#8211; Nginx Reverse Proxy &#8211; Docker</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>Einführung</strong></p>



<p>Wenn Sie Cloudflare als CDN- und DDoS-Schutzdienst verwenden, fungiert es als Vermittler zwischen Ihrer Website und ihren Besuchern. Das bedeutet, dass die für Ihren Webserver sichtbare IP-Adresse standardmäßig die von Cloudflare ist, nicht die des ursprünglichen Besuchers. Dies kann zu Problemen bei der Protokollierung, der Analyse und den auf IP-Adressen basierenden Sicherheitsrichtlinien führen. In diesem Artikel gehen wir die Schritte durch, die notwendig sind, um Ihren Nginx-Server so zu konfigurieren, dass er die echten IP-Adressen der Besucher richtig protokolliert und verwendet, wenn Sie Cloudflare verwenden, selbst in einer Docker-Umgebung.</p>



<p><strong>Das Problem verstehen</strong></p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="945" height="124" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2024/10/image-10.png" alt="" class="wp-image-362" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2024/10/image-10.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2024/10/image-10-300x39.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2024/10/image-10-768x101.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2024/10/image-10-18x2.png 18w" sizes="(max-width: 945px) 100vw, 945px" /></figure>



<p>Wenn sich ein Besucher über Cloudflare mit Ihrer Website verbindet, wird die ursprüngliche IP-Adresse durch die eigene IP von Cloudflare maskiert. Dies hilft, Ihren Server vor direkten Angriffen zu schützen, erschwert aber die Identifizierung der wahren Besucher-IP. Um dieses Problem zu lösen, fügt Cloudflare Header wie <code>X-Forwarded-For</code> und <code>CF-Connecting-IP</code> ein, die die Original-IP des Clients enthalten. Nginx verwendet diese Header standardmäßig nicht, so dass eine zusätzliche Konfiguration erforderlich ist.</p>



<p><strong>Voraussetzungen</strong></p>



<p>Vergewissern Sie sich vor dem Start, dass Sie alles haben:</p>



<ol start="1" class="wp-block-list">
<li>Auf einem Nginx-Server, auf dem das Modul <code>ngx_http_realip_module </code>aktiviert ist. Dieses Modul ist erforderlich, um die realen IP-Header korrekt zu behandeln.</li>



<li>Ein grundlegendes Verständnis der Nginx-Konfiguration und von Docker.</li>



<li>Zugang zu den Konfigurationsdateien Ihres Servers.</li>
</ol>



<p><strong>Schritt 1: Nginx für die Verwendung von echten IP-Headern konfigurieren</strong></p>



<p>Damit Nginx die echte IP aus den von Cloudflare bereitgestellten Headern erkennt, müssen Sie die Konfiguration ändern. Stellen Sie zunächst sicher, dass das Modul <code>ngx_http_realip_module </code>installiert ist. Dieses Modul ist normalerweise in den meisten Nginx-Installationen standardmäßig enthalten.</p>



<p>Als nächstes erstellen Sie eine Datei namens <code>Cloudflare </code>im Verzeichnis <code>/etc/nginx/</code> mit folgendem Inhalt:</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p></p>



<pre class="wp-block-code"><code>set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
...
real_ip_header CF-Verbindungs-IP;
</code></pre>



<p>Diese Datei listet alle Cloudflare-IP-Bereiche auf und weist Nginx an, diesen IPs zu vertrauen und den CF-Connecting-IP-Header für die echte IP zu verwenden. Für zukünftige Updates ist es wichtig, die IP-Bereiche von Cloudflare regelmäßig zu überprüfen, da sie sich im Laufe der Zeit ändern können.</p>



<p><strong>Schritt 2: Einbindung der Cloudflare-Konfiguration in Nginx</strong></p>



<p>Bearbeiten Sie die Hauptkonfigurationsdatei von Nginx, die sich normalerweise unter <code>/etc/nginx/nginx.conf</code> befindet. Fügen Sie im Abschnitt <code>http {}</code> die neu erstellte Cloudflare-Konfigurationsdatei ein:</p>
</div></div>



<pre class="wp-block-code"><code>http {
     include /etc/nginx/cloudflare;
     ...
}</code></pre>



<p>Dadurch wird sichergestellt, dass die reale IP-Konfiguration global auf alle Ihre Serverblöcke angewendet wird.</p>



<p><strong>Schritt 3: Aufzeichnung echter IP-Adressen</strong></p>



<p>Um die ursprüngliche Besucher-IP in Ihre Logs aufzunehmen, ändern Sie die log_format-Direktive in Ihrer <code>nginx.conf</code>, um die Variablen <code>$http_cf_connecting_ip</code> und <code>$http_x_forwarded_for</code> zu verwenden. Zum Beispiel:</p>



<pre class="wp-block-code"><code>log_format main '$remote_addr - $http_cf_connecting_ip &#91;$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';</code></pre>



<p>So können Sie sowohl die Cloudflare-IP als auch die ursprüngliche Besucher-IP in Ihren Protokollen sehen.</p>



<p><strong>Schritt 4: Übernahme der Änderungen</strong></p>



<p>Um die Änderungen anzuwenden, testen Sie die Nginx-Konfiguration:</p>



<ul class="wp-block-list">
<li>Für CentOS/RHEL:</li>
</ul>



<p><code>nginx -t</code></p>



<ul class="wp-block-list">
<li>Für Ubuntu:</li>
</ul>



<p><code>service nginx restart</code></p>



<p><strong>Schritt 5: Überprüfen der Konfiguration</strong></p>



<p>Überprüfen Sie Ihre Website und die Nginx-Zugangs- und Fehlerprotokolle (z. B. <code>/var/log/nginx/access.log</code>), um sicherzustellen, dass die echten Besucher-IPs korrekt protokolliert werden. Dieser Schritt ist wichtig, um sicherzustellen, dass Ihre Konfiguration wie erwartet funktioniert.</p>



<p><strong>Optional: Handhabung von Real IP in einer Docker-Umgebung</strong></p>



<p>Wenn Ihre Webanwendung in einem Docker-Container läuft, müssen Sie die echte IP an die containerisierte Anwendung übergeben. Fügen Sie die folgende Zeile in Ihre Nginx-Konfiguration ein, direkt nach der <code>fastcgi_pass </code>Direktive:</p>



<p><code>fastcgi_param REMOTE_ADDR $http_x_real_ip;</code></p>



<p>Dies setzt die Variable <code>$_SERVER['REMOTE_ADDR']</code> in PHP-basierten Anwendungen auf die ursprüngliche IP.</p>



<p><strong>Allgemeine Probleme und Fehlerbehebung</strong></p>



<ol start="1" class="wp-block-list">
<li><strong>Falsche IP in den Protokollen: </strong>Überprüfen Sie, ob die Cloudflare-IP-Bereiche aktuell sind und ob die <code>real_ip_header </code>Direktive korrekt gesetzt ist.</li>



<li><strong>Nginx-Konfigurationsfehler: </strong>Verwenden Sie <code>nginx -t</code>, um vor dem Neustart von Nginx auf Syntaxfehler in den Konfigurationsdateien zu prüfen.</li>



<li><strong>Docker-Netzwerk-Probleme:</strong> Stellen Sie sicher, dass der Netzwerkmodus von Docker eine korrekte IP-Weiterleitung ermöglicht.</li>
</ol>



<p><strong>Schlussfolgerung</strong></p>



<p>Wenn Sie die in diesem Artikel beschriebenen Schritte befolgen, können Sie sicherstellen, dass Ihr Nginx-Server, auch wenn er innerhalb von Docker läuft, die von Cloudflare bereitgestellten ursprünglichen IP-Adressen der Besucher korrekt protokolliert und verwendet. Dies ist für eine genaue Protokollierung, Sicherheitskonfigurationen und Analysen unerlässlich. Mit der richtigen Konfiguration können Sie die Vorteile des Schutzes von Cloudflare nutzen, ohne die Sichtbarkeit von echten Benutzerdaten zu opfern.</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/01/29/echte-ip-ueber-cloudflare-erhaelt-nginx-reverse-proxy-docker/">Wie man eine echte IP über Cloudflare erhält &#8211; Nginx Reverse Proxy &#8211; Docker</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
