执行docker-compose exec web bash时遭遇OCI runtime权限错误求助
解决
docker-compose exec web bash报错:OCI runtime exec failed: open /dev/pts/0: operation not permitted 以下是几种可行的解决方法,按优先级尝试:
先确认容器运行状态
执行docker-compose ps查看web服务的状态,只有状态为Up的容器才能执行exec命令。如果容器未启动,先执行docker-compose up -d web启动服务,再重试原命令。添加终端支持配置到docker-compose.yml
在docker-compose.yml的web服务块中添加tty: true和stdin_open: true,开启容器的交互式终端支持:services: web: # 保留原有镜像、端口等配置 tty: true stdin_open: true保存配置后重启容器:
docker-compose restart web,再尝试执行docker-compose exec web bash。修复宿主机/dev/ptmx权限
宿主机的/dev/ptmx权限异常可能触发该问题,执行以下命令修复权限:sudo chmod 666 /dev/ptmx权限修复后重试原命令。
直接使用docker原生命令
跳过docker-compose,用docker原生命令执行:- 找到web服务对应的容器ID:
docker ps | grep web - 执行交互式终端命令:
docker exec -it <容器ID> bash
- 找到web服务对应的容器ID:
Rootless Docker环境特殊处理
如果是非root用户运行Docker(rootless模式),确保当前用户对/dev/pts目录有足够权限,或者重启rootless Docker服务:systemctl --user restart docker
内容的提问来源于stack exchange,提问作者Badr Bechtioui
相关产品推荐
相关产品推荐

