docker-logs
6000/tcp,0.0.0.0:6000->80/tcp vigilant_mclean
尝试使用url http://0.0.0.0:6000/从邮递员那里拨打电话,但没有得到任何响应。
有没有人能解释一下当我们运行容器时,码头是如何工作的?
DockerFile
FROM node:10
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 6000
CMD [ "node", "server.js" ]server.js
const express = require('express')
const app = express()
const port = 6000
const bodyParser = require('body-parser');
const middleware = ('./middleware');
const middleware2 = ('./middleware2');
app.use(bodyParser.json());
app.get('/', (req, res) => res.send('Hello World!'))
app.post('/v1', middleware, middleware2);
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
module.exports = app;发布于 2019-12-28 04:04:27
看起来你的server.js正在监听你容器的6000端口。您需要将容器的6000端口绑定到您主机的6000端口(您当前正在将容器的80端口绑定到您主机的6000端口)
docker run -p 6000:6000 ... <image>还要确保您的进程正在监听主机0.0.0.0 (而不是本地主机)。容器的localhost与您主机的localhost不同
app.listen('0.0.0.0',port, () => console.log(`Example app listening on port ${port}!`));https://stackoverflow.com/questions/59505414
复制相似问题