【发布时间】:2021-05-13 00:21:02
【问题描述】:
在 ubuntu 13.04 和 docker 0.7.2 下,当我通过 Dockerfile 或交互创建容器时:生成的网络接口 veth** 没有 ipv4 地址,而是 ipv6 地址。
如何获取 ipv4 地址?有没有我错过的东西。这取决于我的网络配置吗?
在 12.04 盒子上的行为相同。
【问题讨论】:
在 ubuntu 13.04 和 docker 0.7.2 下,当我通过 Dockerfile 或交互创建容器时:生成的网络接口 veth** 没有 ipv4 地址,而是 ipv6 地址。
如何获取 ipv4 地址?有没有我错过的东西。这取决于我的网络配置吗?
在 12.04 盒子上的行为相同。
【问题讨论】:
主机中的网络接口veth…不应该有 IPv4 地址。这些虚拟接口成对工作:
eth0,并有一个IPv4地址。总而言之,它看起来就像一个普通的界面。veth…接口。它将在主机中,并且没有 IPv4 地址。这两个接口连接在一起:在一个接口上发送的任何数据包都将显示为被另一个接口接收。您可以想象它们是通过交叉电缆连接的,如果有帮助的话:-)
veth… 接口具有 IPv6 地址的事实仅仅是因为启用 IPv6 时,所有接口都至少接收到一个链路本地地址。但在这种情况下,这个地址基本上是没有用的。
【讨论】:
veth是路由器的一个LAN口,而容器中的eth0是一个连接到路由器的设备。那你就知道了,veth不需要有自己的ip地址啊
重启一次 docker 服务。这将在 docker0 链接
中显示 ipv4 地址sudo systemctl restart docker.service
请记住,正在运行的容器将被关闭。
可以使用ifconfig命令查看ip
【讨论】: