在 Windows Docker 中安装并配置 Nginx的方法(映射 Windows 端口与路径)

 更新时间:2026年02月28日 11:00:15   作者:倚肆  
本文将详细介绍如何在Windows系统的Docker环境中运行Nginx容器,并将Windows本地路径和端口映射到容器内,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

本指南将详细介绍如何在 Windows 系统的 Docker 环境中运行 Nginx 容器,并将 Windows 本地路径和端口映射到容器内。

步骤概览

  1. 确保 Docker 运行:确认 Docker Desktop for Windows 已启动并运行在 Linux 容器模式。
  2. 准备目录结构:在 Windows 上创建或确认项目目录和配置文件存在。
  3. 拉取 Nginx 镜像:从 Docker Hub 获取官方 Nginx 镜像。
  4. 运行 Nginx 容器:使用 docker run 命令,正确映射端口、配置文件和日志等路径。
  5. 验证与访问:测试 Nginx 服务是否正常运行。

详细操作步骤

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 ...:roro 表示“只读”(read-only),防止容器修改宿主机的配置文件或关键系统文件。
  • -v D:\动漫库:/usr/share/nginx/html/动漫库:将 Windows 动漫库映射到容器内 Nginx 的默认网页根目录下的动漫库子目录。
  • 重要提示nginx.confproxy_pass 指向了 http://:8080http://。在容器内,localhost指的是容器自身,而非宿主机(Windows)。若后端服务运行在**宿主机Windows**上,应使用宿主机的特殊DNS名称 `host.docker.internal` 替代。例如:
location /api {
proxy_pass http://host.docker.internal:8080;
# ... 其他 proxy_set_header 指令
}

4. 验证服务

  1. 检查容器状态
docker ps
应能看到名为 `my-nginx` 的容器处于 `Up` 状态。
  1. 查看容器日志
docker logs my-nginx

检查是否有启动错误。特别是检查配置文件语法。

  1. 访问测试
  • 打开浏览器,访问 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

注意事项

  1. 路径大小写与空格:Windows 路径包含空格(项目),在 PowerShell 中使用反引号 ` 续行是有效的。在普通 CMD 中,请移除反引号并将命令写在一行,或用 ^ 续行。
  2. 防火墙:确保 Windows 防火墙允许对 8080 端口的入站连接(如果需要在局域网内访问)。
  3. 配置热重载:修改本地的 nginx.conf 后,需在容器内执行 nginx -s reload 使配置生效,或直接重启容器。
docker exec my-nginx nginx -s reload
  1. 后端服务访问:再次强调,容器内访问宿主机服务,请使用 host.docker.internal 这个主机名。

通过以上步骤,您即可在 Windows Docker 中成功运行一个使用自定义配置、且所有重要数据都持久化在 Windows 宿主机的 Nginx 服务。

到此这篇关于在 Windows Docker 中安装并配置 Nginx (映射 Windows 端口与路径)的文章就介绍到这了,更多相关docker安装配置nginx内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决Docker无法拉取镜像(需配置镜像加速器)

    解决Docker无法拉取镜像(需配置镜像加速器)

    在Linux中拉取Docker镜像失败可能因无法连接DockerHub,解决方法包括配置国内镜像加速器和重启Docker服务,以提升速度并确保配置生效
    2025-09-09
  • Docker命令行入门大全(这18条,你不得不知)

    Docker命令行入门大全(这18条,你不得不知)

    Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。
    2019-09-09
  • docker部署vue项目的实现步骤

    docker部署vue项目的实现步骤

    当我们在本地开发了一个vue项目之后,肯定是想部署到服务器上供其他人访问,本文主要介绍了docker部署vue项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 防火墙导致docker pull失败问题及解决

    防火墙导致docker pull失败问题及解决

    因网络防火墙检测到镜像中的敏感文件(如passwd)导致docker pull卡顿或断连,解决方法包括调整防火墙策略或修改网卡MTU值以规避关键字过滤
    2025-09-09
  • 使用Docker部署前端和后端项目的完整教程

    使用Docker部署前端和后端项目的完整教程

    使用Docker部署项目可以实现快速、一致和可重复的部署流程,下面这篇文章主要介绍了使用Docker部署前端和后端项目的完整教程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-02-02
  • Docker镜像重命名的实现方法

    Docker镜像重命名的实现方法

    本文主要介绍了Docker镜像重命名的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Docker简单入门使用教程

    Docker简单入门使用教程

    这篇文章主要介绍了Docker简单入门教程,帮助大家开始学习docker容器,感兴趣的朋友可以了解下
    2020-08-08
  • docker使用registry搭建本地镜像仓库实例详解

    docker使用registry搭建本地镜像仓库实例详解

    这篇文章主要介绍了docker使用registry搭建本地镜像仓库实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Docker 常用命令整理(实用篇)

    Docker 常用命令整理(实用篇)

    这篇文章主要介绍了Docker 常用命令整理,需要的朋友可以参考下
    2017-02-02
  • 用Docker安装Gitlab的方法步骤

    用Docker安装Gitlab的方法步骤

    这篇文章主要介绍了用Docker安装Gitlab的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08

最新评论