我有一个用Node.js编写的Web应用程序,我正试图进入Docker。使用docker run -p 80:80 image
运行图像效果很好;我可以访问它托管的网页。但是,当我尝试在堆栈中运行它时,我无法访问该页面,而Chrome只是永远地“等待本地主机...”。
Dockerfile:
FROM readytalk/nodejs
WORKDIR /app
ADD . /app
RUN npm i
EXPOSE 80
CMD []
ENTRYPOINT ["/nodejs/bin/npm", "start"]
搬运工-compose.yml:
version: "3"
services:
web:
image: image_name
deploy:
replicas: 5
resources:
limits:
cpus: "0.1"
memory: 50M
restart_policy:
condition: on-failure
ports:
- "80:80"
networks:
- webnet
networks:
webnet:
非常感谢任何帮助。
编辑:添加了一些日志记录,似乎HTTP请求实际上从未实际发送到Node.js应用。似乎Docker已收到请求,但尚未将其路由到正在运行的应用程序。
答案 0 :(得分:1)
docker info
转到终端并写入
窗口中的
ipconfig
然后查看首选IP,然后使用指定端口
的IP访问您的容器 在Ubuntu中
ifconfig
希望这可以解决您的问题并尝试使用127.0.0.1:port
您可以查看此幻灯片,其中显示并运行hello world node + docker
docker-node-hello-world-application
我建议使用这个Docker文件。
FROM alpine
RUN apk update && apk upgrade
RUN apk add nodejs
RUN mkdir -p /app
ADD app/package.json /app
WORKDIR /app/
ENV HOME /app
ENV NODE_ENV development
RUN npm install
ADD app /app
EXPOSE 3000
CMD npm start