我已成功将mongo,redis容器与我的nodejs应用容器相关联。我的节点应用程序现在在我的容器内运行但由于某种原因我无法访问它:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f8790bb7cc5 mseay/myapp:latest "/bin/bash" 2 minutes ago Up 2 minutes 0.0.0.0:3000->3000/tcp myapp
5470cdd876eb redis:latest "/entrypoint.sh redi About an hour ago Up About an hour 6379/tcp redis
36c61197d8bd mongo:latest "/entrypoint.sh mong About an hour ago Up About an hour 27017/tcp mongo
在我的容器中,我的节点应用程序在端口3000上运行。我的docker run命令指定将容器中的3000映射到我的主机上的3000:
docker run -i -t -p 3000:3000 --name myapp --link mongo:MONGODB --link redis:REDIS mseay/myapp /bin/bash
docker port显示
3000/tcp -> 0.0.0.0:3000
但是,当我转到localhost:3000或尝试卷曲它时:
curl: (7) Failed to connect to localhost port 3000: Connection refused
抱怨自己是无趣的。任何帮助总是非常感谢!
答案 0 :(得分:4)
问题是您正在使用boot2docker
。端口在运行docker 的虚拟机上发布。您可以通过运行boot2docker ip
来获取该虚拟机的IP地址。
因此,对于端口3000上的服务,您可以运行:
curl http://$(boot2docker ip):3000/