在使用指令HEALTHCHECK构建镜像时,可以在
然而,在
Dockerfile
中指定健康检查。您可以指定要运行的命令、容器启动后第一次检查前等待的时间(--start-period
)、运行健康检查的频率(--interval
)、等待健康检查完成的时间(--timeout
)以及健康检查失败后应重试的次数(--retries
)。所有这些都被打包到镜像中,并且可以在本地可用的镜像上使用docker inspect
查看。然而,在
docker run
的参数中似乎没有任何可以覆盖这些设置的选项。如果您正在使用由第三方构建并执行健康检查的镜像,则受制于他们在创建镜像时决定(或未决定)的内容。例如,当健康检查超时时间过短时,可能会创建孤立的进程,该进程将无限期地保留在容器和主机的PID表中。如果经常进行健康检查,而这些检查经常超时,则PID表可能在几天内填满(尽管可以使用docker run
上的--init
标志来缓解这个特定的问题)。有没有一种方法可以覆盖图像的健康检查设置,或者在不重新构建它的情况下完全禁用健康检查?