Bam*_*ylo 2 macos port forwarding docker
这里有一篇相关的文章:通过Docker Toolbox安装的Mac OSX上的Docker中的端口映射
但这对我没用
获取容器的端口
码头工人端口485186e65a5e
8080/tcp -> 0.0.0.0:33360
8088/tcp -> 0.0.0.0:33359
19888/tcp -> 0.0.0.0:33358
50070/tcp -> 0.0.0.0:33357
50075/tcp -> 0.0.0.0:33356
8042/tcp -> 0.0.0.0:33361
Run Code Online (Sandbox Code Playgroud)
检查是否有人监听了容器中的端口
bash-4.1# netstat -alnpt | grep 19888
tcp 0 0 127.0.0.1:19888 0.0.0.0:* LISTEN 1094/java
Run Code Online (Sandbox Code Playgroud)
在容器中放入wget
bash-4.1# wget 127.0.0.1:19888
--2016-04-11 14:16:54-- http://127.0.0.1:19888/
Connecting to 127.0.0.1:19888... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://127.0.0.1:19888/jobhistory [following]
--2016-04-11 14:16:54-- http://127.0.0.1:19888/jobhistory
Reusing existing connection to 127.0.0.1:19888.
HTTP request sent, awaiting response... 200 OK
Length: 6763 (6.6K) [text/html]
Saving to: `index.html'
100%[================================================================================================================================================================================>] 6,763 --.-K/s in 0s
2016-04-11 14:16:54 (182 MB/s) - `index.html' saved [6763/6763]
Run Code Online (Sandbox Code Playgroud)
尝试从主机访问转发的端口,没有运气...:(((
$docker-machine ip default
192.168.99.100
$ wget 192.168.99.100:33358
--2016-04-11 16:18:04-- http://192.168.99.100:33358/
Connecting to 192.168.99.100:33358... failed: Connection refused.
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我遇到了同样的问题,并且能够通过指定容器内的服务器使用的主机来修复它。
注意:下面使用主机时,表示 Web 服务器主机。当我使用host-machine时,我指的是我正在使用的主操作系统(即不是容器或网络服务器,只是我的笔记本电脑作为机器)
问题
在容器上运行 Web 服务器,例如webpack-dev-server使用http-server大量http://localhost. 通常,当您启动服务器时,您会在输出中看到这一点。就像是 :
Project is running at http://localhost:8080
或者
Server available at http://127.0.0.1:8080
在大多数机器上,localhost和127.0.0.1都是一样的。该主机不可公开查看。结果,您的主机看不到任何东西,即使它在正确的位置查找。
解决方案
当您在容器内运行服务器时,您应该指定一个公共主机。
webpack-dev-server --port 8080 --host 0.0.0.0
或者
http-server -p 8080 -a 0.0.0.0
由于0.0.0.0任何外部计算机都可以查看该地址,因此您应该能够在主机上看到您的应用程序按预期工作。
注意:这适用于任何服务器,例如 Python 的 SimpleHTTPServer 等。只需在文档中查找如何更改所选服务器的主机
资源/Nods (如何使用可公开访问的主机运行 webpack-dev-erver)[如何使 webpack 开发服务器在端口 80 和 0.0.0.0 上运行以使其可公开访问?
| 归档时间: |
|
| 查看次数: |
4685 次 |
| 最近记录: |