从主机连接Docker容器内的webpack-dev-server

20

我正在Docker容器(node:4.2.1)中运行一个webpack-dev-server应用程序。如果我尝试从容器内连接服务器端口,它可以正常工作。但是,尝试从主机计算机连接它会导致连接重置(当然已发布该端口)。我该怎么办?


你能展示一下你的Dockerfile和docker run命令吗? - hc2p
我没有Dockerfile,我是从node:4.2.1镜像手动运行的: docker -ti -p 8080:8080 node:4.2.1 bash - avishorp
1
你试图连接到哪个IP地址?Docker默认将端口绑定到所有可用接口,表示为0.0.0.0(INADDR_ANY)。如果你想将其绑定到本地主机,请执行 docker -ti -p 127.0.0.1:8080 node:4.2.1 bash - hc2p
2个回答

29

2
Webpack 在这里是一个 web 服务器。它的默认绑定是本地主机(127.0.0.1)。因此,当您尝试从主机连接到容器时,webpack 拒绝连接,因为它不是本地连接。将其绑定到所有 IP 地址即可解决问题。 - Thibault Deheurles
哇,谢谢!这真是救了我的命。我花了一天半的时间尝试让我的MacOS浏览器连接到运行在Ubuntu Docker容器上的webpack-dev-server应用程序。(Plutus Pioneer Program) - marcel_g

2

这正是我正在做的事情。我正在尝试从运行Docker的计算机上访问容器,它们之间没有虚拟机。 - avishorp
@user1442554,那你的主机是Linux机器,不是Mac或Windows? - VonC
@user1442554,我猜端口已经映射了? - VonC
什么意思是映射?端口在容器内部是打开的(我可以访问它),被公开和发布。当我尝试从容器外部访问它时,它会重置。如果应用程序没有运行,则连接被拒绝。 - avishorp
@avishorp 我的意思是确实已发布 (-p x:y)。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接