获取docker引擎运行的主机的IP地址

从正在运行的Docker容器中,有没有办法获得容器运行的主机的IP地址?

从容器中,默认网关地址是主机地址。 例如,你可以这样做:

ip route | awk '$1 == "default" {print $3}' 

这是Docker为您的容器networking创build的桥接设备上的主机地址。 您将能够访问该地址处的任何主机服务,这些主机服务正在所有接口上进行侦听或绑定到该特定接口。

如果你真的需要你的主机的外部地址,你需要通过一个环境variables来传递这些信息,如下所示:

 docker run -e MY_IP=192.168.10.1 ... 

或者通过其他一些机制(configuration文件,数据库值等)。

larsks的答案是伟大的。 但是,如果您需要获取主机的公共IP,则可以尝试http://ifconfig.me/ 。 该命令将是:

 $ curl ifconfig.me 

然后你可以得到你的主机的公共IP。