Docker 端口公开
Docker port expose
作为
的跟进
我已成功将 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
在我的容器内,我的节点应用程序 运行ning 在端口 3000 上。我的 docker 运行 命令指定将容器中的 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
。端口在虚拟机 运行ning docker 上发布 。您可以通过 运行ning boot2docker ip
.
获取该虚拟机的 IP 地址
因此,对于端口 3000 上的服务,您可以 运行:
curl http://$(boot2docker ip):3000/
作为
我已成功将 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
在我的容器内,我的节点应用程序 运行ning 在端口 3000 上。我的 docker 运行 命令指定将容器中的 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
。端口在虚拟机 运行ning docker 上发布 。您可以通过 运行ning boot2docker ip
.
因此,对于端口 3000 上的服务,您可以 运行:
curl http://$(boot2docker ip):3000/