Windows Docker 部署 Nginx 服务器

avatar
作者
筋斗云
阅读量:0

一、简介

Nginx 是一款高性能的 HTTP 和反向代理 web 服务器,同时也是 IMAP/POP3/SMTP 服务的提供者。它使用 C 语言编写,具有轻量级、高并发、高度可定制化和可扩展性等特点。Nginx 的并发能力在同类型网页服务器中表现优异,能够处理大量并发连接,保持在高负载和大流量下的良好性能。此外,Nginx 还支持热部署,可以在不停止服务的情况下更新配置文件和软件升级。它广泛用于构建和部署现代化的 Web 应用程序,如静态文件服务、请求路由、反向代理以及缓存和加速等。

二、部署

这里安装的是 1.25.4 Tag 版本,如果需要安装其他或者最新版本,可以到 Docker Hub 进行查找。

2.1 准备 nginx.conf

首先,进行 Nginx 配置的初始化,这里是将容器内默认的配置文件拷贝到物理机。打开 Docker Desktop,切换到 Linux 容器。然后在 PowerShell 执行下面命令,即可启动一个 Nginx 服务。

docker run -d ` -p 8080:80 ` --name nginx-1.25.4 ` nginx:1.25.4 

然后,执行下面命令,即可将容器内的 nginx.conf 文件拷贝到物理 C:\ProgramDatas\Docker\Containers\nginx-1.25.4\nginx.conf 文件中。拷贝完成后执行删除命令,将容器删除即可。

docker cp nginx-1.25.4:/etc/nginx/nginx.conf C:\ProgramDatas\Docker\Containers\nginx-1.25.4\nginx.conf 
docker rm -f nginx-1.25.4 

2.2 部署 Nginx

在 PowerShell 执行下面命令,即可启动一个 Nginx 服务。

docker run -d ` -p 8080:80 ` --restart always ` --name nginx-1.25.4 ` -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\html:/usr/share/nginx/html ` -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\nginx.conf:/etc/nginx/nginx.conf ` -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\cache:/var/cache/nginx ` -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\pid:/var/run ` nginx:1.25.4 

-参数 --restart always 在容器退出时总是重启容器。
-参数 -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\html:/usr/share/nginx/html 映射 Nginx 默认路径到物理机。
-参数 -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\nginx.conf:/etc/nginx/nginx.conf 映射 Nginx 容器内配置文件。
-参数 -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\cache:/var/cache/nginx 映射 Nginx 缓存目录到物理机。
-参数 -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\pid:/var/run 映射 Nginx 的 PID 文件到物理机。

三、部署检测

在物理机的 C:\ProgramDatas\Docker\Containers\nginx-1.25.4\html 目录下,创建一个 index.html 文件,内容拷贝下面的即可。然后打开浏览器,访问 8080 端口 http://localhost:8080/,可以看到我们的页面,即代表部署成功。

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>NGINX</title> </head> <body>     The deployment of NGINX has been completed. </body> </html> 

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!