想要的行为
启动我的dockerized nodejs服务器时,我可以从本地计算机访问以下地址:http://localhost:3030
然后,Docker控制台应打印“Hello World”
问题描述
我在Docker容器中包含一个nodejs服务器。我无法从浏览器访问http://localhost:3030/
server.js文件
const port = require('./configuration/serverConfiguration').port
const express = require('express')
const app = express()
app.get('/', function (req, res) {
res.send('Hello World')
})
app.listen(port)
DockerFile公开端口3000,这是server.js文件使用的端口
DockerFile的
FROM node:latest
RUN mkdir /src
RUN npm install nodemon -g
WORKDIR /src
ADD app/package.json package.json
RUN npm install
EXPOSE 3000
CMD npm start
我使用docker-compose.yml文件,因为我将容器与mongodb服务链接
docker-compose.yml文件
version: '3'
services:
node_server:
build: .
volumes:
- "./app:/src/app"
ports:
- "3030:3000"
links:
- "mongo:mongo"
mongo:
image: mongo
ports:
- "27017:27017"
文件将我的容器3000端口发布到主机3030端口
新信息
试图在OSX上执行它,成功了。 Windows似乎有问题。
最佳答案
自从我使用docker toolbox以来,我将本地ip更改为机器ip。我不好看没有dept的文档