【问题标题】:Docker connection issues - refused to connectDocker 连接问题 - 拒绝连接
【发布时间】:2018-12-02 20:01:43
【问题描述】:

我使用的是 Mac OSX,我在 part 4 of the Docker tutorial,但我无法通过我的网络浏览器访问该网站。当我访问docker-machine ls 命令给出的任一 IP 地址时,我收到“无法访问此站点”错误。如果我指定端口 2377,例如 http://192.168.99.100:2377/(也使用端口 2376),我至少可以连接,但会导致“192.168.99.100 发送无效响应”错误消息。

当我尝试向端口 80 和 8080 发出 curl 请求时,它失败了

curl http://192.168.99.100:80
curl: (7) Failed to connect to 192.168.99.100 port 80: Connection refused

如果我指定端口 2376 或 2377,它将连接,但我没有返回任何内容,这似乎与我直接从网络浏览器访问时遇到的“无效响应”错误一致

curl --verbose 192.168.99.100:2376
* Rebuilt URL to: 192.168.99.100:2376/
*   Trying 192.168.99.100...
* TCP_NODELAY set
* Connected to 192.168.99.100 (192.168.99.100) port 2376 (#0)
> GET / HTTP/1.1
> Host: 192.168.99.100:2376
> User-Agent: curl/7.54.0
> Accept: */*
> 

* Connection #0 to host 192.168.99.100 left intact

这是我运行docker-machine ls时的输出

NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
myvm1   *        virtualbox   Running   tcp://192.168.99.100:2376           v18.06.1-ce   
myvm2   -        virtualbox   Running   tcp://192.168.99.101:2376           v18.06.1-ce   

我认为我的虚拟机存在端口映射问题,但我不知道该怎么办。我试过the accepted answer in this question,但还是没有运气。

更新

我按照this post 中的建议尝试了端口转发,但也没有运气。我添加了以下内容并在 VirtualBox 管理器中验证了转发规则存在

VBoxManage controlvm "myvm1" natpf1 "tcp-port8000,tcp,,80,,80";
VBoxManage controlvm "myvm2" natpf1 "tcp-port8000,tcp,,80,,80";

我还为两个 vm 分别添加了端口 7946 TCP/UDP 和端口 4789 UDP 的转发

【问题讨论】:

  • 我不确定手动转发这些端口是否是一个好方法。我相信 swarm 路由网格无论如何都会使用它自己的端口进行内部路由,但是如果您手动路由端口而不知道会发生什么,您最终可能会遇到一个不可预测的系统。
  • 您的集群是否健康?正在运行docker node ls?

标签: docker containers virtualbox


【解决方案1】:

我今天在学习part4的时候也遇到了同样的问题。经过很长时间寻找解决方案但没有奏效,然后我检查了我的docker-compose.yml 文件以查看端口映射并找到了正确的端口。对我来说是curl -v http://192.168.99.100:4000,它起作用了:

【讨论】:

  • 成功了,谢谢!我应该知道我必须在教程的前面部分中指定端口 4000。
猜你喜欢
  • 2017-11-14
  • 1970-01-01
  • 2022-06-22
  • 2017-01-22
  • 1970-01-01
  • 2021-06-27
  • 2017-07-10
  • 2018-07-03
  • 2020-02-22
相关资源
最近更新 更多