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

Docker Compose部署MariaDB遇Entrypoint权限拒绝错误求助

解决Ubuntu 20.04下Docker Compose启动MariaDB的权限拒绝问题

问题原因

你遇到的是宿主目录与容器内用户权限不匹配的问题:原生Docker环境中,MariaDB容器默认以mysql用户(UID通常为999)运行,而宿主的./dbsetup目录权限未授予该用户访问权限,导致容器无法读取初始化脚本目录;Docker Desktop因集成了文件权限自动适配机制,所以能正常运行。

解决方案

方法一:匹配目录属主(推荐)

  1. 确认容器内mysql用户的UID/GID
    执行以下命令查看容器内mysql用户的身份信息:
docker run --rm mariadb id mysql

通常输出为:uid=999(mysql) gid=999(mysql) groups=999(mysql)

  1. 修改宿主./dbsetup目录的属主
    将宿主目录的属主改为容器内mysql用户的UID/GID:
sudo chown -R 999:999 ./dbsetup

方法二:放宽目录权限(适合测试环境)

如果不想修改目录属主,可以通过放宽权限让容器内用户能访问目录:

# 给目录添加其他用户的读、执行权限
sudo chmod -R 755 ./dbsetup
# 给目录内的文件添加其他用户的读权限
sudo chmod -R 644 ./dbsetup/*

验证

完成权限调整后,重新执行:

docker compose up

此时MariaDB容器应能正常启动,Adminer也可正常连接数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:01:07