Docker启动webapp-client容器报错:exec: "-v"找不到可执行文件
问题描述
启动webapp-client容器时触发如下错误:
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "-v": executable file not found in $PATH: unknown.
Dockerfile内容:
### STAGE 1: Base ### FROM node:10.9.0-alpine as base RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY package.json /usr/src/app COPY package-lock.json /usr/src/app RUN npm install RUN npm update RUN npm audit fix COPY . /usr/src/app ### STAGE 2: Test ### # FROM base as Test # RUN npm run test ### STAGE 3: build ### FROM base as build RUN npm run build ### STAGE 3: Production Environment ### FROM nginx:1.15.2-alpine as release WORKDIR /usr/src/app COPY --from=build /usr/src/app/build /usr/share/nginx/html RUN rm /etc/nginx/conf.d/default.conf COPY proxy.conf /etc/nginx/conf.d/ CMD ["nginx", "-g", "daemon off;"]
执行的启动命令:
docker run --name njc -p 4000:80 -e NODE_ENV="development" --rm -d webapp-client:latest -v
当前环境状态:webapp-server、mongo、amazon-ecs-agent容器均正常运行,已执行docker system prune -a清理缓存及已停止容器。
问题原因与解决方法
- 原因:
docker run命令的参数顺序错误。Docker会将镜像名称(webapp-client:latest)之后的内容当作容器启动时要执行的命令,而非Docker自身的参数。这里末尾的-v被识别为要运行的可执行文件,系统自然找不到该文件。 - 解决方式:
- 若原本计划挂载卷,将
-v参数移至镜像名称之前,并补充完整的挂载路径(示例如下,需替换为实际路径):docker run --name njc -p 4000:80 -e NODE_ENV="development" -v /本地目录路径:/容器内目标路径 --rm -d webapp-client:latest - 若无需挂载卷,直接删除命令末尾的
-v即可:docker run --name njc -p 4000:80 -e NODE_ENV="development" --rm -d webapp-client:latest
- 若原本计划挂载卷,将
内容的提问来源于stack exchange,提问作者Saideep
相关产品推荐
相关产品推荐

