在对我的演示 Express js 应用程序进行 Docker 化并启动容器后,由于以下原因我无法访问该服务"Connection Timeout"
dockerized 之前的 for 项目的 URL (产生了“Hello world!”在浏览器上):
http://localhost:3000/cars/example/fetchResult
启动 docker 容器后项目的 URL(给出一个“172.17.0.2 响应时间过长。")
http://172.17.0.2:3000/cars/example/fetchResult
Dockerfile
FROM node:argon
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install
# Bundle app source
COPY . /usr/src/app
EXPOSE 3000
CMD [ "node", "server.js" ]
我像这样构建了我的docker镜像
docker build -t prasannarb/example-node-service
我将 docker 镜像作为容器启动,例如
docker run -t prasannarb/example-node-service
然后当我,docker ps
,它给了我
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7cf955f5d799 prasannarb/example-node-service "node server.js" About a minute ago Up About a minute 3000/tcp thirsty_perlman
docker inspect 7cf955f5d799
给我"IPAddress": "172.17.0.2"
由于我没有明确提供启动容器的端口,因此我假设它与我的 docker 容器(3000)公开的端口相同,这也是我的服务也会侦听的端口。
我在这里做错了什么?