Docker 连接问题 - 拒绝连接
Docker connection issues - refused to connect
我正在使用 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
我认为我的 VM 存在端口映射问题,但我不确定该怎么做。我试过了 ,但还是不行。
更新
我尝试了 this post 中建议的端口转发,但也没有成功。我添加了以下内容并在 VirtualBox 管理器中验证了转发规则存在
VBoxManage controlvm "myvm1" natpf1 "tcp-port8000,tcp,,80,,80";
VBoxManage controlvm "myvm2" natpf1 "tcp-port8000,tcp,,80,,80";
我还为两个虚拟机中的每一个添加了端口 7946 TCP/UDP 和端口 4789 UDP 的转发
今天学习part4的时候遇到了同样的问题。经过很长时间寻找解决方案但没有奏效,然后我检查了我的 docker-compose.yml
文件以查看端口映射并找到了正确的端口。对我来说是 curl -v http://192.168.99.100:4000
,并且有效:
我正在使用 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
我认为我的 VM 存在端口映射问题,但我不确定该怎么做。我试过了
更新
我尝试了 this post 中建议的端口转发,但也没有成功。我添加了以下内容并在 VirtualBox 管理器中验证了转发规则存在
VBoxManage controlvm "myvm1" natpf1 "tcp-port8000,tcp,,80,,80";
VBoxManage controlvm "myvm2" natpf1 "tcp-port8000,tcp,,80,,80";
我还为两个虚拟机中的每一个添加了端口 7946 TCP/UDP 和端口 4789 UDP 的转发
今天学习part4的时候遇到了同样的问题。经过很长时间寻找解决方案但没有奏效,然后我检查了我的 docker-compose.yml
文件以查看端口映射并找到了正确的端口。对我来说是 curl -v http://192.168.99.100:4000
,并且有效: