获取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。