我用 docker
启动了一个容器,通过 docker inspect
查看到了容器的 ip
, 我通过这个 ip
访问容器的服务拒绝访问。当我使用 127.0.0.1
就可以正常访问这是怎么回事?
我启动的是 nsq
# 启动 nsqlookup
docker run --name lookupd -p 4160:4160 -p 4161:4161 nsqio/nsq /nsqlookup
docker inspect
查看到 ip 是 172.17.0.2
# 启动 nsqd
docker run --name nsqd -p 4150:4150 -p 4151:4151 nsqio/nsq /nsqd --lookupd-tcp-address=172.17.0.2:4160
docker inspect
查看到 nsqd
ip 是 172.17.0.3
使用 http api 发送消息
# 发送成功
$ curl -d 'hello world 1' 'http://127.0.0.1:4151/pub?topic=test'
# 发送失败
$ curl -d 'hello world 2' 'http://172.17.0.3:4151/pub?topic=test'
为什么使用容器的 ip 不可以发送?