无法从主机连接到 dockerized webpack-dev-server
Unable to connect to dockerized webpack-dev-server from host
我无法从我的主机连接到我的 dockerized webpack-dev-server。这是我目前所拥有的。
1) Dockerfile 文档公开了 8080 端口并以 运行 结束 webpack-dev-server
Docker 文件:
EXPOSE 8080
CMD npm run start-dev
2) Dockerfile 内置于名为 'uxframe'
的镜像中
命令行:
docker build -t uxframe .
3) 'peteypablo'容器使用uxframe容器启动。 'peteypablo' 正在侦听所有内部 IP 并将内部端口 8080 上的任何内容发布到端口 8080
命令行:
docker run --name peteypablo --rm -it -p 0.0.0.0:8080:8080 uxframe
4) Webpack Dev Server 运行s 在 docker 容器内的 8080 端口
package.json
"start-dev" : "webpack-dev-server --config ./config/webpack.config.dev.js --public --host 0.0.0.0 --port 8080"
5) 检查以确保 'peteypablo' 容器 运行ning 并且端口已打开。
命令行:
docker ps
结果:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
387751c35091 uxframe "/bin/sh -c 'npm run…" 2 minutes ago Up 2 minutes 0.0.0.0:8080->8080/tcp peteypablo
6) 获取'peteypablo'容器的IP地址
命令行:
docker inspect peteypablo | grep IPAddress
结果:
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
7) 浏览器尝试连接172.17.0.2:8080
结果:
8) ** 连接到 'peteypablo' 和 运行 ifconfig 以验证 IP 地址。 (对于接下来的那些人,ifconfig 要求您在容器中安装 net-tools。在我的 Dockerfile 中它是 RUN apt-get install -qy net-tools
)
命令行:
docker exec -it peteypablo ifconfig
结果:
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:792 errors:0 dropped:0 overruns:0 frame:0
TX packets:773 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:157963 (154.2 KiB) TX bytes:10865419 (10.3 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
仍然无法连接到 webpack-dev-server.
完成所有这些设置后,我发现我可以使用 http://localhost:8080
而不是容器的 IP 地址 [=] 连接到 webpack-dev-server 11=].
我仍然不确定为什么 docker 容器本身的 ip 地址不起作用。从我收集到的信息来看,这似乎与 Mac.
的 Docker 的一部分所需的虚拟化有关
我无法从我的主机连接到我的 dockerized webpack-dev-server。这是我目前所拥有的。
1) Dockerfile 文档公开了 8080 端口并以 运行 结束 webpack-dev-server
Docker 文件:
EXPOSE 8080
CMD npm run start-dev
2) Dockerfile 内置于名为 'uxframe'
命令行:
docker build -t uxframe .
3) 'peteypablo'容器使用uxframe容器启动。 'peteypablo' 正在侦听所有内部 IP 并将内部端口 8080 上的任何内容发布到端口 8080
命令行:
docker run --name peteypablo --rm -it -p 0.0.0.0:8080:8080 uxframe
4) Webpack Dev Server 运行s 在 docker 容器内的 8080 端口
package.json
"start-dev" : "webpack-dev-server --config ./config/webpack.config.dev.js --public --host 0.0.0.0 --port 8080"
5) 检查以确保 'peteypablo' 容器 运行ning 并且端口已打开。
命令行:
docker ps
结果:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
387751c35091 uxframe "/bin/sh -c 'npm run…" 2 minutes ago Up 2 minutes 0.0.0.0:8080->8080/tcp peteypablo
6) 获取'peteypablo'容器的IP地址
命令行:
docker inspect peteypablo | grep IPAddress
结果:
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
7) 浏览器尝试连接172.17.0.2:8080
结果:
8) ** 连接到 'peteypablo' 和 运行 ifconfig 以验证 IP 地址。 (对于接下来的那些人,ifconfig 要求您在容器中安装 net-tools。在我的 Dockerfile 中它是 RUN apt-get install -qy net-tools
)
命令行:
docker exec -it peteypablo ifconfig
结果:
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:792 errors:0 dropped:0 overruns:0 frame:0
TX packets:773 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:157963 (154.2 KiB) TX bytes:10865419 (10.3 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
仍然无法连接到 webpack-dev-server.
完成所有这些设置后,我发现我可以使用 http://localhost:8080
而不是容器的 IP 地址 [=] 连接到 webpack-dev-server 11=].
我仍然不确定为什么 docker 容器本身的 ip 地址不起作用。从我收集到的信息来看,这似乎与 Mac.
的 Docker 的一部分所需的虚拟化有关