具有不同容器和端口的相同Docker镜像不可访问

我在我的Windows开发机器上运行Docker主机,并有2个辨别图像暴露不同的端口(3000,3001)。 使用以下docker-compose构build并运行容器,但端口3001上的容器不能通过本地主机或我的IP地址使用。

DockerFile

FROM mhart/alpine-node:8 # Create an app directory (in the Docker container) RUN mkdir -p /testdirectory WORKDIR /testdirectory COPY package.json /testdirectory RUN npm install --loglevel=warn COPY . /testdirectory EXPOSE 3000 CMD ["node", "index.js"] 

DockerFile

 FROM mhart/alpine-node:8 # Create an app directory (in the Docker container) RUN mkdir -p /test2directory WORKDIR /test2directory COPY package.json /test2directory RUN npm install --loglevel=warn COPY . /test2directory EXPOSE 3001 CMD ["node", "index.js"] 

Docker-Compose文件

 version: '3' services: testdirectory: container_name: testdirectory environment: - DEBUG=1 - NODE_ENV=production - NODE_NAME=testdirectory - NODE_HOST=localhost - NODE_PORT=3000 - DB_HOST=mongodb://mongo:27017/testdirectory - DB_PORT=27017 build: context: ./test-directory volumes: - .:/usr/app/ - /usr/app/node_modules ports: - "3000:3000" depends_on: - mongodb command: npm start test2directory: container_name: test2directory environment: - DEBUG=1 - NODE_ENV=production - NODE_NAME=test2directory - NODE_HOST=localhost - NODE_PORT=3001 - DB_HOST=mongodb://mongo:27017/test2directory - DB_PORT=27017 build: context: ./test2-directory volumes: - .:/usr/app/ - /usr/app/node_modules ports: - "3001:3001" depends_on: - mongodb command: npm start mongodb: image: mongo:3.4.4 container_name: mongo ports: - 27017:27017 volumes: - /data/db:/data/db 

当我跑步的时候有没有什么明显的缺失

 docker container port test2directory 

它返回

 3001/tcp -> 0.0.0.0:3001 

发现问题了! 将容器中的HOST设置为localhost导致了这个问题,并将其更改为0.0.0.0。