2017-03-10 3 views
0

Wir können unten Syntax in Dockerfile für HTTP healthcheck verwenden.TCP heathcheck für Andock-Container mit Dockerfile?

HEALTHCHECK --interval=5s --timeout=3s CMD curl --fail  http://localhost/feeds/check || exit 1 

Ich möchte wissen, wenn ich einen TCP-Healthcheck verwenden möchte?

PS- Nicht sicher, ob Docker es nativ unterstützt & wir brauchen keine extra Konfiguration dafür.

Antwort

-1

HTTP entworfen, um nur über TCP-Protokoll zu arbeiten, daher wird HTTP-Healthcheck die Integrität der TCP-Verbindung widerspiegeln.

+0

Wenn App keine HTTP-Antwort bietet - 'curl' wird mit' curl: (52) Leere Antwort vom Server' fehlschlagen – strangeman

1

Docker-Healthchecks werden implementiert, indem Sie einen beliebigen Befehl ausführen, den Sie im Container eingeben, und den Rückgabecode überprüfen. Wenn Sie also zum Beispiel curl und jq installieren, können Sie die Ausgabe einiger json analysieren, um den Zustand zu bestimmen.

Geben Sie für Ihren TCP-Port einfach die erforderlichen ausführbaren Dateien in Ihr Image ein und den Befehl zum Ausführen, um es als Healthcheck zu testen. Diese ausführbare Datei könnte Ihr Anwendungs-Client sein, könnte netstat sein, um zu prüfen, ob der Port zuhört, oder es könnte net cat sein, um Ihren eigenen manuellen Test zu implementieren.