您当前的位置:首页 > 网站建设 > 网站维护
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery |

Docker安装Nginx问题及错误分析

51自学网 2022-07-04 11:27:42
  网站维护

问题:


Docker中装Nginx时遇到了如下错误:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused “process_linux.go:424: container init caused “rootfs_linux.go:58: mounting /”/docker/nginx/conf/” to rootfs /"/var/lib/docker/overlay2/126c244dc6ee7095b1501a503eb361bade4fc255601ec0b0fe96238b58178958/merged/" at /"/var/lib/docker/overlay2/126c244dc6ee7095b1501a503eb361bade4fc255601ec0b0fe96238b58178958/merged/etc/nginx/nginx.conf/" caused /“not a directory/”"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

我是安装了镜像后直接就去

docker run / -p 80:80 / --name nginx / -d --restart=always / -v /mydata/nginx/html:/usr/share/nginx/html / -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf / -v /mydata/nginx/logs:/var/log/nginx / nginx

之后就出现了错误。

错误分析:


错误中我看的懂的地方说:尝试把目录装载到文件夹上,/nginx/nginx.conf/" caused /“not a directory/”",哒哒哒…什么的,这里我看了主机上的文件路径,发现本地创建的nginx.conf是个文件夹nginx.conf/,不是我想要的文件nginx.conf

正确的操作方法:


创建文件

mkdir -p /mydata/nginx/conftouch /mydata/nginx/conf/nginx.confvim /mydata/nginx/conf/nginx.conf

在nginx.conf中写入官方初始的内容

#user  nobody;worker_processes  1;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '    #                  '$status $body_bytes_sent "$http_referer" '    #                  '"$http_user_agent" "$http_x_forwarded_for"';    #access_log  logs/access.log  main;    sendfile        on;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  65;    #gzip  on;    server {        listen       80;        server_name  localhost;        #charset koi8-r;        #access_log  logs/host.access.log  main;        location / {            root   /usr/share/nginx/html;            index  index.html index.htm;        }        #error_page  404              /404.html;        # redirect server error pages to the static page /50x.html        #        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }}

然后运行

docker run /	-p 80:80  /	--name nginx / 	-d --restart=always / 	-v /mydata/nginx/html:/usr/share/nginx/html / 	-v /mydata/nginx/conf.d:/etc/nginx/conf.d / 	-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf / 	-v /mydata/nginx/logs:/var/log/nginx / 	nginx 

测试:

在本地/mydata/nginx/html/下放入一个index.html

重启:docker restart nginx

访问http://localhost/

image-20211216132625114

参考博客:


下载地址:
使用Lvs+Nginx集群搭建高并发架构的实现示例
开发者必备Docker命令小结

51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1