在计算机上运行docker-compose-development.yaml
时,无法连接到http://localhost:8080
。
另外,我可以运行docker-compose -f docker-compose-development.yaml exec web curl http://localhost:8080
并得到结果。因此,这似乎不是代码问题。
我已经完成的工作:
$ docker inspect ...
localhost
更改为127.0.0.1
或0.0.0.0
8080
之外的其他端口这是我的
$ docker version
:Client:
Version: 17.11.0-ce
API version: 1.34
Go version: go1.8.4
Git commit: 1caf76c
Built: Mon Nov 20 18:30:11 2017
OS/Arch: windows/amd64
Server:
Version: 17.11.0-ce
API version: 1.34 (minimum version 1.12)
Go version: go1.8.5
Git commit: 1caf76c
Built: Mon Nov 20 18:39:28 2017
OS/Arch: linux/amd64
Experimental: true
这是我的
Dockerfile
:FROM node:9.1-alpine
RUN npm install -g nodemon
WORKDIR /opt/webserver/
COPY . /opt/webserver
RUN npm install
CMD ["npm","run","start"]
EXPOSE 8080
RUN rm -rf /tmp/* /var/tmp/*
这是我的
docker-compose-development.yaml
:version: "3"
services:
web:
image: registry.gitlab.com/soundtrack/webapp
ports:
- "8080:8080"
links:
- database
volumes:
- ".:/opt/webserver:rw"
database:
image: mongo:3.4.10
ps
中的docker-compose
命令:$ docker-compose -f .\docker-compose-development.yaml ps
Name Command State Ports
--------------------------------------------------------------------------------
webapp_database_1 docker-entrypoint.sh mongod Up 27017/tcp
webapp_web_1 npm run start Up 0.0.0.0:8080->8080/tcp
最佳答案
我运行了容器:
docker run -d -it -p 10080:80 --name=container-cool-name <container-id>
而且我可以看到正在运行的应用带有 curl (在容器内部)
docker exec -ti container-cool-name bash
#curl localhost:80
Here我读到:
If you’re using Docker Toolbox
“
docker-machine ip
会告诉你”我的应用正确显示在
192.168.99.100:10080
关于node.js - 无法访问本地主机:8080 with docker on windows 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47498101/