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

时间:2016-10-24 17:16:19

标签: networking docker docker-compose

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

2 个答案:

答案 0 :(得分:3)

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

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

这是Docker为您的容器网络创建的桥接设备上的主机地址。您将能够访问该地址的任何主机服务,这些服务要么在所有接口上侦听,要么绑定到该特定接口。

如果确实需要主机的外部地址,则需要通过环境变量传递该信息,如下所示:

docker run -e MY_IP=192.168.10.1 ...

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

答案 1 :(得分:0)

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

$ curl ifconfig.me

然后您就可以获得主持人的公共IP。