root权限下创建docker bridge网络报not permitted如何解决
报错原因
该报错和当前操作用户是否为root无关,核心触发原因是bridge是Docker服务预留的内置预定义网络名称,属于Docker自带的三个默认网络(bridge、host、none)之一,这类预定义网络不支持用户手动执行docker network create命令创建同名实例,也不支持手动删除,因此守护进程会直接返回操作不允许的错误。
你之前执行docker network ls未在列表中看到默认bridge网络,是Docker服务启动时内置bridge网络初始化加载异常导致,并非该预定义网络不存在。
[root@tcs-10-0-114-9 ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 9e953d74c92e host host local a90338bd0bf4 none null local [root@tcs-10-0-114-9 ~]# docker network create --driver=bridge bridge Error response from daemon: operation is not permitted on predefined bridge network
解决方法
- 若需求为创建bridge驱动的自定义网络:直接更换非预留的自定义网络名称即可,不要使用
bridge/host/none三个内置名称,例如执行命令docker network create --driver=bridge custom-bridge即可正常创建,不会触发报错。 - 若需求为恢复Docker默认的内置
bridge网络:直接重启Docker服务,触发服务重新初始化加载内置网络配置即可,无需手动创建。
CentOS/RHEL系列系统执行重启命令:systemctl restart docker
Ubuntu/Debian系列系统执行重启命令:service docker restart
重启完成后再次执行docker network ls,即可看到默认bridge网络正常出现在网络列表中。
注意:Docker的三个内置预定义网络为服务自带资源,无论使用什么权限、指定什么驱动参数,都无法通过手动create命令创建同名网络,属于Docker本身的机制限制,不是系统权限配置问题。
内容的提问来源于stack exchange,提问作者kevin_coding
相关产品推荐
相关产品推荐

