如何公开Docker容器端口并从邮递员那里打电话?

时间:2019-12-27 19:46:58

标签: docker dockerfile devops

docker-logs

6000 / tcp,0.0.0.0:6000->80/tcp vigilant_mclean

尝试使用URL http://0.0.0.0:6000/从邮递员拨打电话,但没有收到任何回复。

有人可以解释一下我们运行容器时docker port如何工作。

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;

1 个答案:

答案 0 :(得分:2)

好像您的"Authorization: token $TOKEN"正在侦听容器的端口6000。您需要将容器的端口Accept: application/vnd.github.3.raw绑定到主机的端口server.js(您当前正在将容器的端口6000绑定到主机的端口6000

80

还要确保您的进程正在侦听主机6000(而不是localhost)。容器的本地主机与主机的本地主机不同

docker run -p 6000:6000 ... <image>