我是 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 进入该端口telnet localhost 5672
并立即连接。
我在这里想念什么?