关于docker stack部署服务,容器启动正常,端口也暴露出来了,但是容器内部服务可以正常返回结果,但是外部缺一直请求没反应的问题排查

本人在mac上,用docker stack部署了一套起名为pdf2txt的服务,服务启动正常:

 但是在使用时,mac本地调用该服务却一直没反应,中间一直没报错,最后直到超时报了个超时的错误。很纳闷。。。然后就到该容器内部去使用同样的请求测试,发现容器内部服务正常。

上面这种问题,很大一部分是因为端口暴露存在问题。但是上图也显示,端口成功暴露出来了。

之后,仔细查看上图的服务列表,发现最上面的一个叫做data_receiver的服务也启动的有同样的pdf2txt容器,这么说,很有可能是因为同样的容器,占用同样的端口,导致后面启动的容器端口被占用,不能正常访问。

然后使用

docker stack rm data_receiver

关闭data_receiver服务

重新部署pdf2txt服务

测试上述想法,果然。。。是这个原因

所以,以后再遇到这种问题,建议注意端口是否冲突。除了部署同一个镜像会导致端口冲突,再部署不同的服务时,也有可能因为人为习惯的因素,导致端口冲突。

你可能感兴趣的:(docker,macOS,10.14)