我正在尝试通过 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
。
命令的输出是:
但是当我尝试在 Chrome 浏览器中打开我的应用程序时,它给我一个空响应。
此外,当我通过本地主机运行相同的应用程序时,它是可以访问的。
为什么我无法通过docker容器的端口映射访问服务器??
最佳答案
容器内部的
localhost
无法从容器外部访问。在容器内的 0.0.0.0
上运行服务器。
关于docker - 即使容器在 docker 中映射了端口,也从服务器获取空响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59786862/