如何解决Docker容器中Nginx出现的404 Not Found错误
解决Docker中Nginx容器运行HTML文件出现404的问题
可能的问题点及排查步骤
检查容器内是否存在index.html
先进入运行的容器,查看目标目录的文件:docker exec -it <容器ID/名称> sh ls /usr/share/nginx/html如果没看到index.html,说明文件没被正确复制到容器里。
确认构建上下文路径是否正确
执行docker build时,.指的是当前工作目录作为构建上下文。如果Dockerfile和index.html在portal目录下,必须先进入这个目录再执行构建命令,不然COPY指令会复制上级目录的内容,导致index.html没被包含进去。
具体解决方案
切换到正确目录重新构建
先进入存放Dockerfile和index.html的portal目录:cd /path/to/portal docker build -t webserver . docker run -d -p 80:80 webserver提前验证镜像内的文件
构建完成后,可以先查看镜像里的文件情况,确认index.html是否存在:docker run --rm webserver ls /usr/share/nginx/html能看到index.html的话,再启动容器访问就正常了。
重载Nginx配置(可选)
如果文件存在但还是404,可能是Nginx缓存导致的,进入容器重载配置:docker exec -it <容器ID/名称> nginx -s reload
内容的提问来源于stack exchange,提问作者PoppaDynasty
相关产品推荐
相关产品推荐

