Docker: Ausführen mehrerer über das Web zugänglicher Container

Docker: Ausführen mehrerer über das Web zugänglicher Container

Ich habe eine Frage zu Docker. Ich führe derzeit Apache mit verschiedenen Sites in verschiedenen Ordnern mit konfigurierten virtuellen Hosts aus. Jetzt möchte ich mehrere Docker-Container mit namensbasiertem Routing ausführen. Wie geht das? Ich hatte die Idee, jeden Container auf seinem eigenen Port auszuführen und Apache zu verwenden, um 80 oder 443 an den Port des Containers weiterzuleiten. Aber ich denke, das wird ein großes Leistungsproblem darstellen und ich weiß nicht, wie ich es konfigurieren soll. Danke.

Antwort1

Wenn Sie Apache für jeden virtuellen Host ausführen, wären der Speicherverbrauch und die CPU-Auslastung höher, insbesondere auf einer Buddy-Site.

Docker würde Ihnen bei Ihren Bereitstellungsproblemen geringfügig helfen.

Dies wäre nützlich, wenn Sie für jeden virtuellen Host ein unterschiedliches Setup haben möchten, z. B. eines mit PHP und eines mit Tomcat/Java.

Wenn Sie jeden Host in einem Container haben möchten, müssen Sie jedem von ihnen eine IP-Adresse zuweisen. Sie können die Hostnamen im DNS haben, die auf die jeweilige IP verweisen.

Portweiterleitung oder Reverseproxy sind nicht erforderlich. Stellen Sie sich vor, Sie hätten für jede Apache-Instanz eine VM. Jeder Apache ist der Container. Nichts anderes wird darin ausgeführt, es sei denn, Sie konfigurieren den Container ausdrücklich so, dass etwas anderes ausgeführt wird.

Wenn Sie eine einzelne externe IP verwenden möchten, können Sie einen Reverse-Proxy verwenden, der sich vor den Containern befindet.

verwandte Informationen