Docker正在运行但无法在localhost上访问

时间:2018-11-26 21:15:32

标签: node.js docker

我是Docker的新手。 对于我的react应用,我想创建一个docker容器。因此,我遵循了https://nodejs.org/en/docs/guides/nodejs-docker-webapp/上的官方教程。

我接管了Dockerfile,仅更改了节点版本,并更改​​了.dockerignore。

Dockerfile

FROM node:10

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
# If you are building your code for production
# RUN npm install --only=production

# Bundle app source
COPY . .

EXPOSE 8080
CMD [ "npm", "start" ]

.dockerignore

node_modules
npm-debug.log

然后,如本教程中所述,我使用docker build -t <your username>/node-web-app .构建了映像,并使用docker run -p 49160:8080 -d <your username>/node-web-app运行了该映像。

我知道它运行成功,因为我检查了日志。同样,可以从容器的bash内部执行curl -i localhost:8080并获得有效的html结果。

从我的计算机中卷曲服务器实例,执行curl -i localhost:49160会使我curl: (52) Empty reply from server

我尝试了localhost,127.0.0.1、0.0.0.0,我的IPv4地址以及各种端口。我不明白我不知道会发生什么错误,因为我做了所有工作,就像在nodejs的官方文档中一样。

1 个答案:

答案 0 :(得分:0)

docker run -p 49160:8080意味着您将Docker容器中的8080端口绑定到实际主机上的49160端口。在您的情况下,来自主机的curl命令必须为curl -i localhost:49160而不是8080