我的场景:我想让我的基于 docker 的服务知道从网络调用它们的 IP(我的应用程序的要求。)
我在云 VPS、debian jessie 和 docker 1.12.2 上运行。
我nc在详细模式下使用打开端口8080。
docker run --rm -p "8080:8080" centos bash -c "yum install -y nc && nc -vv -kl -p 8080"
Run Code Online (Sandbox Code Playgroud)
说,VPS 有域example.com,从我的另一台机器,假设有dead:::::beef我调用的 IP
nc example.com 8080
Run Code Online (Sandbox Code Playgroud)
该服务器说:
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Listening on :::8080
Ncat: Listening on 0.0.0.0:8080
Ncat: Connection from 172.17.0.1.
Ncat: Connection from 172.17.0.1:49799.
Run Code Online (Sandbox Code Playgroud)
172.17.0.1位于服务器的本地网络上,当然与我的客户端无关。实际上:
docker0 Link encap:Ethernet HWaddr ....
inet addr:172.17.0.1 …Run Code Online (Sandbox Code Playgroud)