Docker Desktop启用时docker build卡顿及default构建器权限问题求助
解决Docker Desktop启用时
docker build卡顿及默认构建器永久设置问题 环境信息
- Ubuntu 22.04.3 LTS
- Docker Desktop v4.26.0
- Docker version 24.0.7, build afdd53b
问题详情
执行docker build时出现随机卡顿,仅Docker Desktop启用时触发,停止Docker Desktop服务后docker build恢复正常,确认问题与Docker Desktop直接相关。
执行docker builder ls输出:
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS default * docker default default running v0.11.7+d3e6c1360f6e linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386 desktop-linux docker desktop-linux desktop-linux running v0.11.7+d3e6c1360f6e linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
执行docker builder use default后,Docker Desktop界面Builders菜单中default构建器显示权限错误:
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied
手动在界面选择default并点击USE按钮可正常使用,但无法永久设置为默认构建器。
已尝试操作
- 给Docker Desktop分配充足CPU、内存及磁盘资源
- 执行
sudo usermod -aG docker ${USER} && newgrp docker并重启系统 - 完全卸载并重新安装Docker Desktop,问题仍存在
解决方案
方法1:通过Docker配置文件永久指定默认构建器
编辑用户目录下的Docker配置文件~/.docker/config.json,如果文件不存在则直接创建:
{ "builder": { "default": "default" } }
若已有其他配置,保留原有内容,仅添加builder配置段即可。保存后重启Docker Desktop,启动后会自动将default设为默认构建器。
方法2:修复default构建器的权限报错
- 检查Docker套接字文件权限:
ls -l /var/run/docker.sock
- 若文件所属组不是
docker,执行以下命令修正:
sudo chown root:docker /var/run/docker.sock sudo chmod 660 /var/run/docker.sock
- 重启Docker Desktop,此时界面中
default构建器的权限错误会消失,再执行docker builder use default即可永久生效。
方法3:添加启动脚本自动切换构建器
- 创建切换脚本
~/.docker/switch-builder.sh:
#!/bin/bash sleep 10 # 等待Docker Desktop服务完全启动 docker builder use default
- 给脚本添加执行权限:
chmod +x ~/.docker/switch-builder.sh
- 将脚本添加到Ubuntu启动应用:打开「Startup Applications」,点击「Add」,名称填「Switch Docker Builder」,命令填
bash ~/.docker/switch-builder.sh,保存后每次系统启动时会自动切换到default构建器。
内容的提问来源于stack exchange,提问作者mrk
相关产品推荐
相关产品推荐

