【发布时间】:2022-02-15 09:05:06
【问题描述】:
我有一个简单的网络服务器监听器,它在 docker 中使用命令运行良好
docker build -t node-hello-world:latest .
docker run -it -p 8080:8080 --name node-hello-world node-hello-world:latest
这是应用程序:
'use strict';
const express = require('express')
const app = express();
const port = 8080;
const host = '0.0.0.0';
app.get('/', (req, res) => {
res.send('Hello World from IBM Cloud Essentials!');
})
app.listen(port, host);
console.log(`Running on http://${host}:${port}`);
第一个日志条目输出正常:Running on http://${host}:${port}
但尝试localhost:8080 只会说“无法访问此站点”。这是我的docker ps -a 代码:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0995c28fabed node-hello-world:latest "docker-entrypoint.s…" 15 minutes ago Up 15 minutes 0.0.0.0:8080->8080/tcp node-hello-world
【问题讨论】:
-
该设置看起来不错;你有正确的
docker run -p选项,你正在收听0.0.0.0,这是我要检查的两件重要事情。您从哪里调用该 URL?您的主机操作系统和 Docker 安装是什么?