【问题标题】:Docker container without ipv4 address没有 ipv4 地址的 Docker 容器
【发布时间】:2021-05-13 00:21:02
【问题描述】:

在 ubuntu 13.04 和 docker 0.7.2 下,当我通过 Dockerfile 或交互创建容器时:生成的网络接口 veth** 没有 ipv4 地址,而是 ipv6 地址。

如何获取 ipv4 地址?有没有我错过的东西。这取决于我的网络配置吗?

在 12.04 盒子上的行为相同。

【问题讨论】:

    标签: ipv4 docker


    【解决方案1】:

    主机中的网络接口veth…不应该有 IPv4 地址。这些虚拟接口成对工作:

    • 容器中有一个接口,命名为eth0,并有一个IPv4地址。总而言之,它看起来就像一个普通的界面。
    • 另一半是veth…接口。它将在主机中,并且没有 IPv4 地址。

    这两个接口连接在一起:在一个接口上发送的任何数据包都将显示为被另一个接口接收。您可以想象它们是通过交叉电缆连接的,如果有帮助的话:-)

    veth… 接口具有 IPv6 地址的事实仅仅是因为启用 IPv6 时,所有接口都至少接收到一个链路本地地址。但在这种情况下,这个地址基本上是没有用的。

    【讨论】:

    • 感谢您的解释!我只是发现可以通过 'docker inspect ' 获得 IP 地址。
    • 你确定吗?成对的一个接口如何具有IP地址而其他接口却没有。即使我们假设它们是通过交叉电缆连接的,它们是如何说话的?
    • @VikramSingh 把它想象成一个有多个LAN口的路由器,一个veth是路由器的一个LAN口,而容器中的eth0是一个连接到路由器的设备。那你就知道了,veth不需要有自己的ip地址啊
    【解决方案2】:

    重启一次 docker 服务。这将在 docker0 链接

    中显示 ipv4 地址
    sudo systemctl restart docker.service
    

    请记住,正在运行的容器将被关闭。 可以使用ifconfig命令查看ip

    【讨论】:

      猜你喜欢
      • 2019-02-21
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 2015-01-05
      相关资源
      最近更新 更多