“ip route list | grep docker0”是获取docker主机ip的可靠方法吗?

“ip route list | grep docker0”是获取docker主机ip的可靠方法吗?

我正在使用此代码将 docker 主机 ip 注入到我的容器中。它似乎有效,但我不确定具体ip route list是什么,这是否适用于其他环境,以及 ip 参数是否始终是第 9 个。

docker_host_ip=$(ip route list | grep docker0 | awk '{print $9}')

docker_compose="
  version: '3.5'
  services:
    app:
      extra_hosts:
        - dockerhost:$docker_host_ip
"

echo "$docker_compose" | docker-compose \
  -f docker-compose.yml \
  -f /dev/stdin \
  up

答案1

这看起来是可靠的。这ip route list将显示系统上配置的所有路由,并且该src属性限制目标 IP 的潜在来源,在本例中为 docker0 IP(有关更多信息,请参阅此处srcip route 显示源字段)。

另一种方法是通过ifconfig docker0或获取网络接口详细信息ip a show dev docker0

相关内容