将Docker容器中的Websocket客户端连接到主机中的Websocket服务器

时间:2018-08-30 03:25:20

标签: docker websocket

我的主机中运行着一个Websocket服务器,监听端口8080。 在一个Docker容器中,我使用以下代码片段部署了一个Websocket客户端来监听所述服务器:

connect_url="ws://0.0.0.0:80/"

,然后将容器的端口80暴露/映射到主机的端口8080。

Dockerfile:

EXPOSE 80

当我运行容器时:

docker run -p 8080:80 <name>

但是我遇到了这个错误:

  

docker:来自守护程序的错误响应:驱动程序无法在端点上编程外部连接:启动用户级代理时出错:与0.0.0.0:8080绑定失败:端口已分配。

现在,我认为此错误是因为主机中的服务器已经在使用端口8080,因此无法对其进行映射。

给出这些详细信息后,我只是想知道我的docker容器中的websocket客户端如何连接到主机中的websocket服务器

1 个答案:

答案 0 :(得分:1)

我认为问题是容器内的端口80已在使用中,而不是主机上的8080。尝试使用另一个端口代替docker容器内的80连接套接字(例如777端口)。然后运行docker run -p 8080:777 <name>

顺便说一句,检查您的主机端口是否已经在用户中: sudo lsof -i tcp:8080 如果未显示,则表示端口8080尚未使用。如果已经在使用中。在端口8080上终止该进程: sudo kill -9 your_PID_ID 然后重试