<p>The new ability to specify a HEALTHCHECK in a Dockerfile seems redundant with the Kubernetes probe directives. Any advice on what to use when?</p>

<p>If you use Kubernetes, I'd suggest using only the Kubernetes liveness/readiness checks because Docker healthcheck <a href="https://github.com/kubernetes/kubernetes/issues/25829" rel="noreferrer">has not been integrated in the Kubernetes</a> as of now (release 1.12). This means that Kubernetes does not expose the check status in its api server, and the internal system components can not consume this information. Also, Kubernetes distinguishes <a href="http://kubernetes.io/docs/user-guide/pod-states/#container-probes" rel="noreferrer">liveness from readiness checks</a>, so that other components can react differently (e.g., restarting the container vs. removing the pod from the list of endpoints for a service), which the docker HEALTHCHECK currently does not provide.</p>

<p>Update: Since Kubernetes 1.8, the Docker HEALTHCHECK has been <a href="https://github.com/kubernetes/kubernetes/pull/50796" rel="noreferrer">disabled explicitly</a> in Kubernetes.</p>
