在 Windows Docker 中安装并配置 Nginx (映射 Windows 端口与路径)
本指南将详细介绍如何在 Windows 系统的 Docker 环境中运行 Nginx 容器,并将 Windows 本地路径和端口映射到容器内。
步骤概览
详细操作步骤
1. 准备本地目录与配置文件
根据您提供的配置,项目结构假设如下:
项目
├── niginx配置日志
│ ├── nginx.conf # 配置文件
│ └── nginx_logs\\ # 日志目录 (error.log, access.log, nginx.pid 将生成于此)
└── (其他项目文件)
nginx.conf 配置文件中的关键路径使用 Windows 风格(如D:/项目/…),这在容器内是无效的。通过 Docker 的卷挂载(-v 参数)将 Windows 的真实目录映射为容器内的路径,使配置生效。
2. 拉取 Nginx 镜像
打开 PowerShell 或命令提示符,执行以下命令拉取最新的官方 Nginx 镜像:
docker pull nginx:latest
查看nginx版本
docker run –rm nginx nginx -v

3. 运行 Nginx 容器 (核心步骤)
执行以下 docker run 命令来启动容器。此命令完成了以下关键映射:
- 端口映射:将容器内的 80 端口映射到 Windows 主机的 8080 端口。
- 配置文件映射:将本地的 nginx.conf 文件覆盖容器内的默认配置。
- 日志目录映射:将本地的日志目录挂载到容器内,使日志文件持久化保存在 Windows 上。
- 网站资源目录映射:挂载“动漫库”目录,使其可通过 Nginx 访问。
- MIME 类型文件:挂载容器内默认的 mime.types 文件,确保配置中的 include mime.types; 指令有效。
docker run -d `
–name my-nginx `
-p 8080:80 `
-v D:\\项目\\HanHan\\niginx配置日志\\nginx.conf:/etc/nginx/nginx.conf:ro `
-v D:\\项目\\HanHan\\niginx配置日志\\nginx_logs:/var/log/nginx `
-v D:\\动漫库:/usr/share/nginx/html/动漫库 `
-v /etc/nginx/mime.types:/etc/nginx/mime.types:ro `
nginx
命令参数解释:
- -d:后台运行容器。
- –name my-nginx:为容器指定一个名称(例如 my-nginx),便于管理。
- -p 8080:80:端口映射,格式为 主机端口:容器端口。访问 http://localhost:8080 即访问容器 Nginx 的 80 端口。
- -v …:ro:ro 表示“只读”(read-only),防止容器修改宿主机的配置文件或关键系统文件。
- -v D:\\动漫库:/usr/share/nginx/html/动漫库:将 Windows 动漫库映射到容器内 Nginx 的默认网页根目录下的动漫库子目录。
- 重要提示: nginx.conf 中 proxy_pass 指向了 http://:8080 或 http://。在容器内,localhost 或 指的是容器自身,而非宿主机(Windows)。若后端服务运行在**宿主机Windows**上,应使用宿主机的特殊DNS名称 `host.docker.internal` 替代。例如:
location /api {
proxy_pass http://host.docker.internal:8080;
# … 其他 proxy_set_header 指令
}
4. 验证服务
docker ps
应能看到名为 `my-nginx` 的容器处于 `Up` 状态。
docker logs my-nginx
检查是否有启动错误。特别是检查配置文件语法。
- 打开浏览器,访问 http://localhost:8080。
- 访问 http://localhost:8080/动漫库/ 来测试静态资源服务。
- 根据配置访问相应的 API 路径(如 /api)。
5. 常用管理命令
- 停止容器:
docker stop my-nginx
- 启动已停止的容器:
docker start my-nginx
- 重启容器:
docker restart my-nginx
- 进入容器终端(用于调试):
docker exec -it my-nginx /bin/bash
- 删除容器(如需重新配置):
docker rm -f my-nginx
注意事项
docker exec my-nginx nginx -s reload
通过以上步骤,您即可在 Windows Docker 中成功运行一个使用自定义配置、且所有重要数据都持久化在 Windows 宿主机的 Nginx 服务。



![第5章,[Win32 章节] :边框绘制函数(六)-171主机测评](https://www.171host.com/wp-content/uploads/2026/08/20260822144238-6a89b55eb002b-220x150.png)


