【发布时间】:2018-06-25 21:07:54
【问题描述】:
我是 docker 新手,也许这是我还不完全理解的东西,但我正在尝试做的是连接到正在运行的 docker 容器中的一个开放端口。我已经从集线器 (https://hub.docker.com/_/rabbitmq/) 拉出并运行 rabbitmq 容器。 rabbitmq 容器应该使用端口 5672 供客户端连接。
运行容器后(按照中心页面的说明):
$ docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3
现在我想做的是 telnet 进入打开的帖子(在常规的 rabbitmq 安装上是可能的,也应该在容器上)。
我已经(至少我认为我做到了)使用以下命令获取了容器 IP 地址:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
我得到的结果是172.17.0.2。当我尝试使用telnet 172.17.0.2 5672 访问时,它不成功。
地址172.17.0.2 对我来说似乎很奇怪,因为如果我在我的机器上运行ipconfig,我看不到任何使用172.17.0.x 地址的接口。我确实看到 Ethernet adapter vEthernet (DockerNAT) 使用以下 ip:10.0.75.1。这是应该的吗?
如果我进行端口绑定(添加-p 5672:5672),那么我可以使用telnet localhost 5672 远程登录到此端口并立即连接。
我在这里错过了什么?
【问题讨论】:
-
你在什么操作系统上运行 Docker?
-
@larsks Windows 10
标签: docker docker-container docker-networking docker-network