Ich glaube, die Antwort auf diese Frage hängt davon ab, was die Bereitstellungsanforderung Ihrer Anwendung ist.
Fall 1) Die Bereitstellung Ihrer Anwendung ist unkompliziert, Sie benötigen lediglich einen Docker-Container.
Lösung 1) Sie brauchen nicht wirklich ein Konfigurationsmanagement-Tool, um Ihre Bereitstellung in diesem Fall zu verwalten Ich glaube, Sie können einen Jenkins-Job so ziemlich einrichten, wie vorgeschlagen here.
Fall 2) Bereitstellung Ihrer Anwendung erfordern einige der Konfiguration in der Docker-Host-Instanz als auch getan werden, vielleicht müssen Sie einige Überwachungsagenten einrichten, Setup einige logrotate usw.
Lösung 2) sollten Sie verwenden ansible/chef, um Ihre Host-Umgebung einzurichten und den Docker-Container ebenfalls zu verwenden. Jetzt könnte docker container deployment wie der normale docker run
sein oder Sie können mit empfohlener docker swarm way gehen, wenn Sie mehr als 1 Anwendung bereitstellen möchten und Ihre Docker Host Instanz effektiv Speicher oder CPU-weise verwendet werden soll. Ganz zu schweigen von den vielen anderen Vorteilen der Verwendung von Schwarm, die Sie überprüfen können, ob sie für Sie anwendbar sind.
Fall 3) Bereitstellung Ihrer Anwendung benötigen Sie einige Kernel-Level-Parameter zu ändern, vielleicht braucht es einige Änderungen in ulimit Parameter usw.
Lösung 3) Docker Schwarm hat einige Einschränkungen, wenn es Konfigurationsoptionen auf Kernel kommt. Sie können an der Diskussion teilnehmen here. In diesem Fall müssen Sie möglicherweise den klassischen Docker-Bereitstellungsmodus verwenden, d. H. docker run
, bis Unterstützung für diese Konfigurationen in Docker-Schwarm hinzugefügt wird.