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

Docker容器启动报错:docker-entrypoint.sh权限拒绝求助

问题原因及解决办法

核心原因

这个错误大概率是Windows WSL2后端的权限映射异常导致的。Docker Desktop在Windows上依赖WSL2运行容器,重置出厂设置后,WSL的文件系统权限规则被打乱,导致容器内执行docker-entrypoint.sh脚本时,无法正确读取或执行当前目录(.)的内容,触发权限拒绝。

解决步骤

1. 重置WSL2环境

  • 打开管理员权限的Windows终端,执行命令停止所有WSL实例:
    wsl --shutdown
    
  • 卸载当前WSL发行版(根据你实际使用的发行版调整,比如Ubuntu):
    wsl --unregister Ubuntu
    
  • 重新打开Docker Desktop,它会自动重建WSL发行版并配置权限。

2. 调整Docker Desktop的WSL集成设置

  • 打开Docker Desktop设置,进入Resources > WSL Integration
  • 确保你使用的WSL发行版处于开启状态,点击"Apply & Restart"
  • 进入Settings > General,勾选"Use the WSL 2 based engine",重启Docker。

3. 修正容器挂载路径

如果启动容器时挂载了本地目录,避免直接挂载Windows路径(如C:\xxx)到容器的工作目录,改用WSL内的目录作为挂载源,示例:

docker run -v /home/你的用户名/项目目录:/容器内目标目录 镜像名称

4. 自定义镜像的权限修复(针对自己构建的镜像)

在Dockerfile中给docker-entrypoint.sh本身添加执行权限,而非仅设置当前目录权限:

RUN chmod +x /usr/local/bin/docker-entrypoint.sh

同时确保ENTRYPOINT命令采用exec模式:

ENTRYPOINT ["exec", "/usr/local/bin/docker-entrypoint.sh"]

5. 彻底清理Docker残留后重装

如果之前重装无效,手动清理残留文件后再重装:

  • 关闭Docker Desktop,删除C:\Program Files\Docker目录
  • 删除用户目录下的.docker文件夹(如C:\Users\你的用户名\.docker)
  • 重新安装Docker Desktop,优先选择WSL2引擎模式。

内容的提问来源于stack exchange,提问作者Bart van de Meerendonk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:55:03