使用与其他程序相同端口的Docker



我目前面临以下问题:我建立了一个节点服务器的docker容器(一个简单的express服务器,在端口9411上向Zipkin发送跟踪数据),并希望沿着Zipkin运行它。因此,据我所知,节点服务器应该使用端口9411向Zipkin发送跟踪数据。如果我只运行节点服务器(不作为docker),我可以沿着Zipkin运行它,一切都很好。但如果我让Zipkin运行然后想启动Docker容器,就会得到错误

启动userland代理时出错:listen tcp4 0.0.0.0:9411: bind: address already in use.

我的理解是9411端口有冲突,因为它似乎被Zipkin阻止了,但显然,Docker容器中的服务器也需要使用它来与Zipkin通信。

如果有人告诉我如何解决这个问题,我将不胜感激。

问候,罗伯特。

当你启动一个docker容器时,你添加一个端口绑定:

docker run ... -p 8000:9000

其中8000是您可以在PC上访问容器内端口9000的端口。

不要将express server绑定到9411,因为zipkin已经在使用这个端口了。

我找到了解决方案:使用标志——network="host"完成任务,-p也不需要

最新更新