本文于 2026-09-11 08:41 更新,部分内容具有时效性,如有失效,请留言
执行 docker exec 时出现 executable file not found in $PATH,通常表示Docker准备在容器内启动的新进程找不到指定可执行文件。这里检查的是容器文件系统和exec进程环境,不是宿主机是否安装了同名命令。
先判断程序根本没装、路径没进入PATH,还是把一整段Shell表达式当成了可执行文件。 这三类原因的修复方式完全不同。

先确认容器和错误原文
Docker官方说明,docker exec 只能在容器主进程仍在运行时启动新命令。先确认容器状态、使用的镜像和原始启动命令:
docker inspect -f '{{.State.Status}} {{.Config.Image}} {{json .Config.Cmd}}' app
docker ps -a --filter name=app
容器处于paused状态时会得到专门的暂停错误;主进程已经退出时,也不能把exec当成修复入口。若容器在运行,保留完整报错中的命令名和路径,不要只记录最后一句。