记录一次使用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
配置好之后就能正常访问了