docker run --name nginxlocal -p 80:80 \
-v /usr/local/var/java/devops/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/var/java/devops/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/var/java/devops/nginx/logs:/var/log/nginx \
-v /usr/local/var/java/devops/nginx/html:/usr/share/nginx/html \
-v /usr/local/var/java/devops/nginx/ssl:/etc/nginx/ssl \
-e TZ=Asia/Shanghai --restart=always --privileged=true -d nginx:1.23.3-alpine
已经从docker测试的nginx环境中复制了对应文件到本地mac对应文件和目录中,但是仍然错误如下:
nginx/conf/nginx.conf" to rootfs at "/etc/nginx/nginx.conf" caused: mount through procfd: 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.
谷歌和百度了非常多的方案,对与mac大多不适用,特别是很多提到关于无法挂载文件的问题。最后尝试如下解决方案:
将gRPC FUSE for file sharing 文件共享方式取消掉采取osxfs 方式,重新启动docker,然后运行最上面的nginx 的启动,仍会报错如下(并且给出了问题解决提示):
将你的本地mac源映射文件路径(如下:/usr/local/var/java.../nginx)共享到docker容器中,做好配置,如下:
点击applay and restart重新启动。
重新运行
docker run --name nginxlocal -p 80:80 \
-v /usr/local/var/java/devops/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/var/java/devops/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/var/java/devops/nginx/logs:/var/log/nginx \
-v /usr/local/var/java/devops/nginx/html:/usr/share/nginx/html \
-v /usr/local/var/java/devops/nginx/ssl:/etc/nginx/ssl \
-e TZ=Asia/Shanghai --restart=always --privileged=true -d nginx:1.23.3-alpine
这个是对应的docker nginx启动了,也能正常访问了