starting services: initializing Docker API Proxy: setting up docker api proxy listener: open \\.\pipe\docker_engine: Access is denied.
引言
上一篇笔记 记录了 WSL 迁移后出现该问题的解决方案之一,后来我又做了一次 WSL 和 Docker 镜像的静默迁移,导致问题又出现了,而且用之前的方法已经无法解决,现在已寻求到另一针对性的解决方案,记录如下 :
解决 Docker Desktop 启动权限问题:多用户组补充方案
一、问题回顾
Docker Desktop 启动报错 open \\.\pipe\docker_engine: Access is denied
,最初仅用户 xxxx 在 docker-users
组未解决,后通过添加 Everyone
、Administrator
等用户 / 组到 docker-users
,成功修复权限问题 。
从图片中可以看到我的用户名本已存在于该组中,但仍然使 Docker Desktop 启动报错,所以不是用户 xxxx 未添加进组中的原因,于是我又分别添加了 Administrator 和
Everyone 扩大权限可用范围。
二、关键操作流程(以添加多用户解决权限为例 )
(一)打开本地用户和组管理
按下 WIN + R
,输入 lusrmgr.msc
回车,进入 “本地用户和组” 管理界面,这是 Windows 配置用户组权限的核心入口 。
lusrmgr.msc
(二)定位 docker-users 组
左侧展开 “本地用户和组(本地)”→“组” ,右侧找到 docker-users
组并双击,打开属性窗口 。
(三)添加多用户 / 组到 docker-users
添加单个用户
点击 “添加 (D)...”→“高级 (A)...”→“立即查找 (N)”,在搜索结果选目标用户(如Administrator
),依次点 “确定” 返回,再点 “应用 (A)”→“确定” 。添加内置组(如 Everyone )
同上述步骤,在 “选择用户(高级)” 的搜索结果中,找到并选择Everyone
组,完成添加与应用 。添加其他用户(可尝试)
添加 Administrator
相同的操作 继续添加 Everyone
通过将多个用户 / 组纳入 docker-users
,扩大了对 \\.\pipe\docker_engine
管道的访问权限范围,解决了权限被拒绝问题 。
三、验证与生效
添加完成后,重新登录系统(或切换用户会话 ),让组权限变更生效 。重启 Docker Desktop ,执行 docker run hello-world
,若成功拉取并运行测试镜像,输出正常提示,说明多用户组配置解决了权限问题 。
四、补充说明
- 若仍未解决,可结合
icacls \\.\pipe\docker_engine
命令,检查管道的访问控制列表,确保docker-users
组及相关用户有(RX)
权限 。 - 此方案通过扩展
docker-users
组成员,覆盖更多用户 / 组的访问需求,适用于多用户环境或复杂权限配置场景,从权限源头上修复了 Docker 管道访问问题 。
通过精准添加多用户 / 组到 docker-users
并确保权限生效,可有效解决 Docker Desktop 因管道访问权限不足导致的启动报错,恢复 Docker 正常使用 。
其他参考资料
适用于 Windows 10 的 Docker //./pipe/docker_engine:访问被拒绝 - Stack Overflow
初始化 Docker API 代理:打开 \\.\pipe\docker_engine:访问被拒绝。·问题 #13663 ·docker/for-win