docker部署nginx -v挂载路径后无法启动,日志显示’-v not found’的解决方法

docker创建nginx镜像,挂载本机文件(夹)时,无法启动,查看日志提示「-v not found」,状态显示exited(127)退出。

主要原因是:docker run命令使用方式不对。

docker run [options] image-name [command] [arg…]

正确示例:

$ docker run --name my-nginx -p 8080:80 nginx

$ docker run --name my-nginx -p 8080:80 \
   -v  /www/nginx/conf.d:/etc/nginx/conf.d \
   -v  /www/nginx/html:/usr/share/nginx/html \
   nginx 

$ docker run --name my-nginx -p 8080:80 \
   -v  /www/nginx/conf.d:/etc/nginx/conf.d \
   -v  /www/nginx/html:/usr/share/nginx/html \
   --restart=always  --privileged=true \
   nginx

错误挂载示例:

$ docker run --name my-nginx -p 8080:80 \
   nginx \
   -v  /www/nginx/conf.d:/etc/nginx/conf.d \
   -v  /www/nginx/html:/usr/share/nginx/html \
   

原因很明显:镜像参数(-v)不能放在镜像名称后面

此外,常见挂载失败的原因还有:

  • 确保挂载目标文件或文件夹路径正确
  • 确保本机路径有读写权限
  • 确保目标文件夹内文件格式正确,不会导致镜像无法启动
  • 避免因selinux安全策略影响,最好添加参数:–privileged=true

(版权归cpury.com所有,转载请注明出处。)