You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Sail容器挂载docker.sock后无法访问如何解决

问题原因及解决方案

根因说明

你遇到的curl: (7) Couldn't connect to server报错,核心是容器内运行的sail用户权限不足,无法读取挂载的docker socket文件。
宿主机的/var/run/docker.sock默认权限为仅root用户和docker用户组成员可读写,而Laravel Sail容器默认使用sail用户(UID/GID默认1000)运行进程,没有对应访问权限,因此触发连接失败。

验证方法

进入Sail容器后执行带sudo的curl命令验证:

sudo curl --unix-socket /var/run/docker.sock http://localhost/version

如果返回正常的docker版本信息,即可确认是权限问题导致的报错。

永久解决方案

通过给容器内用户增加宿主机docker组权限的方式解决,操作步骤如下:

  • 第一步:在宿主机执行命令获取docker组的GID
getent group docker | cut -d: -f3

输出值即为宿主机docker组的GID,示例输出为999。

  • 第二步:修改docker-compose.yml配置,新增group_add配置项
services:
    laravel.test:
        group_add:
            - 999 # 替换为第一步查询到的宿主机docker组GID
        volumes:
            - '.:/var/www/html'
            - /var/run/docker.sock:/var/run/docker.sock
  • 第三步:重建Sail容器使配置生效
sail build --no-cache
sail up -d

配置完成后即可直接用sail用户正常访问docker socket。

临时测试方案(仅本地开发可用,重启docker服务后会自动失效,禁止生产环境使用):
宿主机执行命令给所有用户开放docker socket的读写权限:

sudo chmod o+rw /var/run/docker.sock

内容的提问来源于stack exchange,提问作者frietkot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:39:02