问题描述
可以说我们有一个在docker容器中运行的微服务。
现在要启动此服务,它使用安装在主机卷上的高速缓存,该高速缓存将被所有人共享 同一微服务的其他docker镜像。要在应用程序中构建此缓存,需要10分钟,然后应用程序就可以准备处理请求了。
但是当我们按比例放大和缩小时,这种情况会失败, 可以说我正在扩大容器,但它仍然没有完全用完,因为我们需要等待 建立缓存。
您建议如何处理这种情况。
并且以这种docker服务的字体,我们计划带Nginx来平衡请求的负载。
预先感谢
解决方法
如果我理解正确,那么您想知道何时容器已完全启动并运行。一种选择可以是Health Check。此功能是 Docker 1.12 中添加的。
说明(来自Docker Docs):
运行状况检查将在容器启动后先运行 interval 秒,然后在每次之前的检查完成后再 interval 秒。
如果单次检查花费的时间超过超时秒,则认为检查失败。
需要连续重试连续失败的运行状况检查,才能将容器视为
unhealthy
。 您可以在此处指定运行任何命令来检查服务器状态。
可以使用inspect
-命令检查容器的健康状况
docker inspect --format='{{json .State.Health}}' <container-id>
此功能还将“(健康)” 信息添加到docker ps
中的状态。