Ubuntu运行docker-compose出现PermissionError 13权限错误如何解决
Ubuntu docker-compose 权限报错解决方案
对应报错信息:ERROR: .PermissionError: [Errno 13] Permission denied: './docker-compose.yml'
该错误的核心原因是执行docker-compose命令的用户,没有./docker-compose.yml文件的读取权限,或是当前工作目录权限不足导致无法访问目标文件,可按照以下方案依次排查解决:
解决方案
- 方案1:临时提权执行
仅适合临时测试场景,直接在执行的docker-compose命令前添加sudo即可,示例:sudo docker-compose up -d - 方案2:调整docker-compose.yml文件权限
给当前用户分配文件的所有权和可读权限,执行以下命令:
执行完成后即可无需提权正常操作。sudo chown $USER:$USER ./docker-compose.yml chmod 644 ./docker-compose.yml - 方案3:将当前用户加入docker用户组(长期生效)
绝大多数docker/docker-compose相关的权限报错,都是因为当前用户未加入docker用户组导致的,执行以下操作可永久解决这类权限问题:- 若docker用户组不存在则先创建:
sudo groupadd docker - 将当前用户加入docker用户组:
sudo usermod -aG docker $USER - 刷新用户组配置,无需重启即可生效:
newgrp docker
- 若docker用户组不存在则先创建:
注意事项
- 不要为了省事直接给
docker-compose.yml设置777全局可写权限,会存在文件被恶意篡改的安全风险,普通场景下644权限完全可以满足使用需求。 - 如果
docker-compose.yml存放在挂载的外置存储、网络共享目录下,需要先确认挂载目录的权限配置,确保当前用户对目录有读取、遍历权限。 - 可执行
ls -l ./docker-compose.yml命令查看文件的所属用户、权限配置,快速排查权限异常点。
内容的提问来源于stack exchange,提问作者officialrajdeepsingh
相关产品推荐
相关产品推荐

