Rest 如何在docker cli中运行简单的express服务器?

Rest 如何在docker cli中运行简单的express服务器?,rest,express,docker,curl,ip-address,Rest,Express,Docker,Curl,Ip Address,我的应用程序正在多个docker容器中运行,我需要打开docker exec-it cli bash来触发其中的命令。我的库/应用程序的api没有完全正常工作,我正在尝试使用基于shell的交互(使用shelljs)来引导这项工作 我将遵循本教程()在docker cli中创建一个简单的express服务器。但是我的虚拟机是ipaddress@app从外部调用api时,的端口无法返回输出 我在本地使用:curl-s-X POST打电话http://104.196.172.177:3000/api

我的应用程序正在多个docker容器中运行,我需要打开
docker exec-it cli bash来触发其中的命令。我的库/应用程序的api没有完全正常工作,我正在尝试使用基于shell的交互(使用shelljs)来引导这项工作

我将遵循本教程()在docker cli中创建一个简单的express服务器。但是我的虚拟机是ipaddress@app从外部调用api时,的端口无法返回输出

我在本地使用:
curl-s-X POST打电话http://104.196.172.177:3000/api/addMember -H“内容类型:应用程序/x-www-form-urlencoded”-d'user=Man&address=Moon'
,我正在一个云虚拟机上工作

服务器脚本:

const express = require('express')
const app = express()
const port = 3000
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
//app.get('/', (req, res) => res.send('Hello World!'))
app.use('/api',require('./routes/api'))
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
/路由/api.js:

var express= require('express')
var router= express.Router();
router.get('/addMember',function (res, req) {
res.send('adding member')
})
module.exports= router;
我的猜测是,ip地址是云计算机器的ip地址,而不是docker的ip地址。是这样吗-我必须做什么才能检索ip


如果有其他问题-如何调用此api?它必须在docker cli中运行。

您可以访问此docker容器的日志吗?控制台输出在这里可能有用。您可以显示dockerfile吗?您需要将一个端口(3000)从vm链接到docker容器。您的虚拟机应该在其防火墙中打开端口3000。