+-
Docker端口暴露
作为后续 Linking Docker Containers

我已经成功地将两个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端口显示

3000/tcp -> 0.0.0.0:3000

但是,当我转到localhost:3000或尝试使其卷曲时:

curl: (7) Failed to connect to localhost port 3000: Connection refused

不好意思道歉.任何帮助总是感激不尽!

最佳答案
问题是您正在使用boot2docker.这些端口会在运行docker的虚拟机上发布.您可以通过运行boot2docker ip来获取该虚拟机的IP地址.

因此,对于端口3000上的服务,您可以运行:

curl http://$(boot2docker ip):3000/
点击查看更多相关文章

转载注明原文:Docker端口暴露 - 乐贴网