【发布时间】:2017-03-13 23:47:42
【问题描述】:
我正在阅读 docker API 并尝试创建一个简单的容器并公开 1 个端口。
在我的示例中,我有一个应用程序在容器内的 TCP 端口 9595 上进行侦听,我想从端口 @987654323 上的外部世界(即容器的主机)访问它@。
创建容器时,我有"ExposedPorts": { "9595/tcp: {}" } 和"PortBindings": { "9595/tcp": [{ "HostPort": "9090" }] }。
所以,如果我从主机http://container_internal_ip:9595 访问它就可以了!但是,当我访问http://localhost:9090(这是我期望使用此端口映射功能时),它不起作用...
在运行docker port containerID 时,我有9595/tcp -> 0.0.0.0:9090,这应该意味着when connecting to any IP on the host, at port 9090, forward to the container in port 9595。
那么,这里有什么问题?为什么我无法连接到 9090?
感谢任何澄清。
【问题讨论】:
-
该问题没有足够的信息。我们至少需要 docker 命令、正在使用的镜像或 Dockerfile。 Windows 容器还是 Linux 容器?
-
Docker Remote API 针对什么 docker 引擎? Windows 容器? Linux 容器?没有基础镜像就无法运行容器。什么形象?你是怎么调用Docker Remote API的?这是一个很好的权利吗?你用了什么命令?如果您不提供足够信息,我无法知道您要问什么。
-
抱歉,我无意对 Carlos 无礼,但您的 cmets 都与问题无关。图像是什么问题并不重要。重要的是,根据 API 文档,我将端口 9090 暴露在容器外部并映射到容器内部的端口 9595,但这是行不通的。 Netsh 不会对容器行为或配置产生任何影响。