docker - 即使容器在 docker 中映射了端口,也从服务器获取空响应

标签 docker httpserver

我正在尝试通过 npm start 使用 http 服务器启动我的应用程序。它在本地主机中工作正常,但是当我通过 docker 容器(端口映射)部署相同的应用程序时,它不会出现在我的本地浏览器中。

我的 docker 容器(Ubuntu)中有一个目录,它通过命令运行 docker run -it -p 8001:5500 ubuntu 。 我已经在容器内安装了所有内容 - npm、vim 编辑器等。

我的 package.json 文件是

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "http-server -a localhost -p 5500"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "concurrently": "^5.0.2",
    "http-server": "^0.12.1"
  }
}

之后我完成了npm install,然后执行了命令npm start。 命令的输出是:

enter image description here

但是当我尝试在 Chrome 浏览器中打开我的应用程序时,它给我一个空响应。

enter image description here

此外,当我通过本地主机运行相同的应用程序时,它是可以访问的。 enter image description here

为什么我无法通过docker容器的端口映射访问服务器??

最佳答案

容器内部的

localhost 无法从容器外部访问。在容器内的 0.0.0.0 上运行服务器。

关于docker - 即使容器在 docker 中映射了端口,也从服务器获取空响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59786862/

相关文章:

docker - Azure 服务总线 - 当应用程序位于 Docker 容器中时出现 MessageLockLostException,否则工作正常

javascript - 德尔福 TIdHTTPServer : not allowed to load local resourse from remote device

c - Windows C Web服务器上的独占锁定文件

file - Dart语言:编码(与HttpRequest和http_server包有关)

postgresql - 如何使用 DataGrip 访问 Docker 虚拟网络后面的 PostgreSQL 实例?

带有脚本参数的 Docker 入口点

docker - 无法pecl在Docker alpine上安装:3.7

docker - Docker 中的 Chromium 抛出 "Failed to create shared context for virtualization"

ubuntu - Go 没有检测到来自 aws ubuntu 服务器的 SOMAXCONN 更改

node.js - 当 Node http-server 运行时,Nginx 反向代理似乎无法工作