文章目录
前言
在 Web 服务器和反向代理中,Nginx 是最受欢迎的选择之一。借助 Docker,我们可以快速拉取 Nginx 镜像并运行容器,简化服务器的安装和管理。本文将详细介绍如何使用 Docker 部署 Nginx,包括镜像搜索、拉取、创建容器、端口映射和配置管理等关键步骤。
一、问题描述
在实际项目中,我们通常需要一个可随时启停、易于管理的 Nginx 服务器。手动安装 Nginx 可能涉及较多的配置和依赖问题,而使用 Docker 方式可以大大简化这一过程。
本文的目标是使用 Docker 快速搭建 Nginx 服务器,并进行基本的端口映射和配置管理,以便后续开发使用。
二、解决方案
1. 搜索 Nginx 镜像
首先,我们可以使用以下命令在 Docker Hub 中搜索 Nginx 相关镜像:
docker search nginx
执行后,将会返回一个 Nginx 相关镜像的列表,其中 nginx
是官方维护的镜像。
2. 拉取 Nginx 镜像
使用以下命令拉取 Nginx 官方镜像:
docker pull nginx
如果需要指定特定版本,例如 Nginx 1.21,可以使用:
docker pull nginx:1.21
拉取完成后,可以通过 docker images
命令查看本地镜像列表。
3. 创建并运行 Nginx 容器
运行以下命令,创建文件夹与.conf文件:
mkdir nginx
cd nginx
mkdir conf
cd conf
vim nginx.conf
粘贴如下内容:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
运行以下命令,在 Docker 中创建并启动一个 Nginx 容器:
cd ..
到nginx文件目录下
docker run -id --name=nginx_app \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
参数说明:
-i
:使容器保持交互模式,允许用户进入。-d
:后台运行容器。-p 80:80
:将宿主机的 80 端口映射到容器的 80 端口,使外部可以访问 Nginx。--name=nginx_app
:设置容器名称为nginx_app
。-v $PWD/html:/usr/share/nginx/html
:将本地html
目录挂载到 Nginx 的html
目录,用于存放静态网页文件。-v $PWD/conf:/etc/nginx/conf.d
:将本地conf
目录挂载到 Nginx 配置目录,方便自定义 Nginx 配置。-v $PWD/logs:/var/log/nginx
:将日志文件存储到宿主机的logs
目录,方便查看访问日志和错误日志。nginx
:使用最新的 Nginx 版本。
4. 验证容器是否运行
使用以下命令查看正在运行的容器:
docker ps
如果 Nginx 正常运行,你会看到 nginx_app
在列表中。
5. 访问 Nginx 主页
在浏览器中访问:
http://localhost:80
如果成功加载 Nginx 欢迎页面,说明 Nginx 已经成功运行。

三、验证与总结
验证 Nginx 运行状态
可以使用以下命令查看 Nginx 容器的日志,确认是否正常启动:
docker logs nginx_app
如果日志中显示 Nginx 已成功启动,则说明部署成功。
总结
本文介绍了如何使用 Docker 部署 Nginx,包括:
- 搜索 Nginx 官方镜像
- 拉取 Nginx 镜像
- 创建 Nginx 容器并设置端口和配置管理
- 验证容器状态并访问 Nginx
通过 Docker 部署 Nginx,可以快速搭建 Web 服务器和反向代理,避免了繁琐的手动安装过程,使开发环境更加轻量和高效。后续可以基于此进一步优化 Nginx 配置,例如启用 HTTPS、反向代理 API 服务等。