无法从主机连接到dockerized webpack-dev-server

时间:2018-05-15 20:48:20

标签: docker networking webpack containers webpack-dev-server

我无法从我的主机连接到我的dockerized webpack-dev-server。这是我到目前为止所拥有的。

1) Dockerfile文档暴露8080端口并完成运行webpack-dev-server

Dockerfile:

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在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'容器正在运行且端口已打开。

命令行:

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。

结果:
This page isn't working.  172.17.0.2 didn't send any data.  ERR_EMPTY_RESPONSE

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。

1 个答案:

答案 0 :(得分:0)

完成所有这些设置后,我发现我能够使用 http://localhost:8080 而不是我的容器的http://172.17.0.2:8080 IP地址连接到webpack-dev服务器。 / p>

我仍然不确定为什么docker容器本身的ip地址不起作用。从我收集的内容来看,它似乎与Docker for Mac所需的虚拟化有关。