>最近,
我有一个容器加入了群覆盖网络,
有时,我会出于多种原因更改静态IP,
但不确定为什么来自docker network inspect
的IPv4地址会
仍然显示旧的 IP 地址,但不显示新的 IP 地址,
例如:
第 1 步。运行容器的方式docker run -itd -h kafka_1 --name kafka_1 kafka:latest
第 2 步。分配用于加入叠加网络的网络接口docker network connect --ip 172.20.0.110 test-overlay-net kafka_1
第 3 步。附加到 kafka 容器并通过以下方式更改 ipifconfig eth1 172.20.0.111 netmask 255.255.0.0 broadcast 172.20.255.255
第4步。注销容器,并通过以下方式检查检查信息docker network inspect test-overlay-net
步骤5.并意识到IP地址仍然是旧的,即使IP已经在容器中成功更改。
"Containers": {
"df1de7d9809f3e84857ef19db10f7c50d3d65153dcd47f3b22af6ed3a5ab1b41": {
"Name": "kafka_1",
"EndpointID": "37fe6b03b87435f897780826992a6e1f9b491444738c10de6c7c56aea3edb71d",
"MacAddress": "02:42:ac:14:00:6f",
"IPv4Address": "172.20.0.110/16",
"IPv6Address": ""
},
有谁知道如何解决这个问题?
目前,我只是通过使用docker network disconnect -f test-overlay-net kafka_1
找到解决方法,然后通过docker network connect --ip
再次重新连接
非常感谢!
似乎 docker 从其内部管理中读取 ip,而不是直接从容器的网络命名空间中读取 ip,因此 docker 不知道您的 IP 更改。 当您未显式指定 IP 时,docker 可能会将您在容器中设置的地址分配给新附加的地址,从而导致地址冲突。覆盖数据包路由也可能会出现问题。 总之,我不建议更改容器内的 ip 设置。 您的用例是什么?