为什么我的Docker容器没有被分配IP地址?
Docker容器查询IPAddress为空的常见原因
- 容器已处于退出状态,网络资源被回收
你执行的docker run alpine /bin/echo 'Hello world'为一次性任务容器:容器启动后仅完成echo命令的执行,进程结束后容器立刻进入Exited退出状态。Docker仅为*运行中(Up状态)*的容器维护网络栈并分配IP,容器退出后会自动释放对应的网络资源,因此查询已退出容器的IPAddress字段会返回空值。
你可以启动常驻运行的容器验证IP分配逻辑:
docker run -d --name test_alpine alpine sleep 300
容器运行期间执行inspect命令即可查到正常分配的IP,300秒后容器自动退出,再次查询IP会重新变为空。
容器网络模式设置为none
如果确认容器处于运行状态但仍无IP,通常是启动时指定了--network=none参数。该模式下Docker不会为容器创建任何网络接口,自然不会分配IP地址。Docker本地网络环境故障
极少数场景为Docker本身网络组件异常:默认docker0网桥损坏、容器绑定的自定义网络IP地址池耗尽、dockerd服务网络配置错误,都会导致运行中的容器无法正常分配IP。
内容的提问来源于stack exchange,提问作者Decjk
相关产品推荐
相关产品推荐

