我开始与docker合作。我将简单的node.js应用程序码头化了。我无法从外部访问容器(通过浏览器访问)。
堆栈:
这是我的dockerfile:
FROM node:10.13-alpine
ENV NODE_ENV production
WORKDIR /usr/src/app
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN npm install --production --silent && mv node_modules ../
RUN npm install -g nodemon
COPY . .
EXPOSE 8000
CMD ["npm","run", "start-server"]
我做了以下步骤:
我从工作目录中的命令行运行:
docker image build -t ares-maros .
docker container run -d --name rest-api -p 8000:8000 ares-maros
我打开浏览器并输入0.0.0.0:8000
(也尝试使用127.0.0.1:8000或localhost:8000)
结果:
因此,运行中的Docker容器无法通过浏览器获取
我还进入容器,键入docker exec -it 81b3d9b17db9 sh
,并尝试通过wget / curl访问容器内的节点应用程序,并且可行。我从所有node.js端点获得响应。
可能出什么问题了?也许我的Mac可以阻止连接?
感谢帮助。