Docker运行容器报错:exec: "-v"不在$PATH中,求排查方案
Docker运行报错原因及解决方法
错误原因
Docker run命令的参数顺序有严格规则:所有配置选项(如-it、-p、-v)必须放在镜像名称之前。你当前把-v "$(pwd)":/.放在了镜像名demo之后,Docker会将-v识别为容器启动时要执行的命令,而系统中不存在名为-v的可执行文件,因此抛出错误。
解决步骤
调整
docker run参数顺序
将挂载参数-v移到镜像名称前面,正确的命令如下:docker run -it -p 127.0.0.1:5000:5000 -v "$(pwd)":/app demo注:建议挂载到
/app这类专用目录,避免挂载到根目录/.可能破坏容器内的系统文件结构。同步Dockerfile的工作目录(可选但推荐)
为了让容器内的index.py路径和挂载目录匹配,修改Dockerfile,添加WORKDIR指定工作目录:# Selected base python version FROM python:3.9.6 # 设置工作目录为/app WORKDIR /app COPY requirements.txt ./ # Install all packages - see readme to create the requirements.txt RUN pip install -r requirements.txt # Port the container listens EXPOSE 5000 CMD ["python3", "index.py"]这样容器启动时会自动进入
/app目录,执行index.py时直接使用相对路径即可,和本地挂载的文件完全对应。
内容的提问来源于stack exchange,提问作者aushdk
相关产品推荐
相关产品推荐

