最近
我有一个容器加入了群体覆盖网络,
有时候,出于多种原因,我将更改静态IP,
但不确定为什么docker network inspect
中的IPv4Address
仍显示旧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容器,然后按以下步骤更改IP
ifconfig 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
非常感谢!
答案 0 :(得分:0)
似乎docker从其内部管理中读取ip,而不是直接从容器的网络名称空间中读取ip,因此docker不知道您的IP更改。 如果您未明确指定IP,则docker可能会将您在容器中设置的地址分配给新连接的地址,从而导致地址冲突。覆盖数据包路由也可能会出现问题。 总之,我不建议更改容器内的IP设置。 您的用例是什么?