路由到 docker 集群上的服务

routing to service on docker swarm

我有一个需要很长时间才能启动的容器。当 Docker 在 swarm 上进入服务 运行 状态时,路由器指向服务,但浏览器显示错误,因为容器尚未在端口上侦听。如何检查容器是否已经开始监听端口?我想在容器开始监听端口后直接?

我不知道您使用哪种反向代理进行路由,但如果您使用 Traefik(这在 Docker Swarm 中很常见),您可以使用错误页面:https://doc.traefik.io/traefik/middlewares/errorpages/

Traefik returns 如果您的服务尚未准备好,则会出现 404 错误。所以基本上,如果用户尝试连接到此服务并收到 404 错误,您可以将他重新路由到另一个页面,直到服务准备就绪。