记录一次使用docker部署nginx之后,nginx无法访问宿主机文件的问题。
容器配置文件拷贝到宿主机。
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /home/nginx/
启动nginx的命令。
docker run \
-p 80:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
配置文件配置好之后访问网站发现找不到资源。
遇到问题先查看配置文件配置是否有错误。
没问题,查看日志
说明找不到 /home/genbotter/dist/index.html 文件,那我们就去找。
在该目录下确实有这个文件,那为什么会找不到呢?
要知道Docker是一种轻量级容器技术,与宿主机具有隔离性。我们做了与宿主机的配置文件挂载,但还没做 /home/genbotter/dist/ 路径的挂载。
docker run \
-p 80:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-v /home/genbotter/dist:/home/genbotter/dist \
-d nginx:latest
配置好之后就能正常访问了