nginx
一、Docker 原生命令部署 Nginx(快速验证 / 临时部署)
适合快速测试或单容器临时使用,核心是通过 run 命令挂载卷、映射端口,步骤精简且聚焦核心。
1. 前置准备:创建本地持久化目录
# 创建统一的Nginx部署目录,存放配置、静态文件、日志
mkdir -p /usr/local/nginx/{conf,html,logs}
# 复制Nginx默认配置/静态文件到本地(方便自定义)
# 启动临时容器复制文件后自动删除
docker run --rm nginx:1.25 cp /etc/nginx/nginx.conf /usr/local/nginx/conf/
docker run --rm nginx:1.25 cp -r /etc/nginx/conf.d/ /usr/local/nginx/conf/
docker run --rm nginx:1.25 cp -r /usr/share/nginx/html/ /usr/local/nginx/
2. 启动 Nginx 容器(生产级参数)
# 停止旧容器(如有)
docker stop mynginx && docker rm mynginx
# 运行容器:挂载卷+端口映射+自动重启
docker run -d \
--name mynginx \
-p 80:80 \
--restart=always \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-v /usr/local/nginx/logs:/var/log/nginx \
nginx:1.25
3. 验证部署
访问 http://服务器IP,能看到 Nginx 默认页面即部署成功;如需修改配置 / 静态文件,直接改本地 /usr/local/nginx 下的文件即可。
二、Docker Compose 部署 Nginx(推荐 / 标准化部署)
Docker Compose 通过 docker-compose.yml 配置文件统一管理容器的端口、卷、重启策略等,支持一键启停、配置版本控制,是生产环境 / 多容器场景的首选。
1. 安装 Docker Compose(Linux 系统,Windows/Mac 自带)
# 下载Compose二进制文件(适配Docker Engine)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装(显示版本即成功)
docker-compose --version
2. 创建 Compose 部署目录 & 配置文件
步骤 1:创建目录结构(复用之前的持久化目录,或重新创建)
# 复用已有目录(推荐),或重新创建:
# mkdir -p /usr/local/nginx-compose/{conf,html,logs}
步骤 2:编写 docker-compose.yml 配置文件
在 /usr/local/nginx-compose 目录下创建 docker-compose.yml(核心配置文件),内容如下(带详细注释):
# Compose文件版本(需匹配Docker版本,推荐3+)
version: '3.8'
# 定义服务(可多个,这里仅Nginx)
services:
# 服务名:nginx(自定义,后续命令用这个名)
nginx:
# 镜像版本(指定版本,避免latest不稳定)
image: nginx:1.25
# 容器名(可选,默认是目录名_服务名_1)
container_name: mynginx-compose
# 端口映射:主机80端口 -> 容器80端口
ports:
- "80:80"
# 如需HTTPS,添加443端口:- "443:443"
# 卷挂载(本地目录 -> 容器目录,实现持久化)
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./conf/conf.d:/etc/nginx/conf.d
- ./html:/usr/share/nginx/html
- ./logs:/var/log/nginx
# 重启策略:总是重启(生产必备)
restart: always
# 网络(默认桥接,如需自定义网络可新增networks字段)
networks:
- nginx-network
# 自定义网络(可选,容器间通信更安全)
networks:
nginx-network:
driver: bridge
步骤 3:复制默认配置到 Compose 目录
# 进入Compose目录
cd /usr/local/nginx-compose
# 复制Nginx默认配置/静态文件到本地
docker run --rm nginx:1.25 cp /etc/nginx/nginx.conf ./conf/nginx.conf
docker run --rm nginx:1.25 cp -r /etc/nginx/conf.d/ ./conf/
docker run --rm nginx:1.25 cp -r /usr/share/nginx/html/ ./html/
3. 启动 / 管理 Nginx(Compose 核心命令)
所有操作在 docker-compose.yml 所在目录执行:
启动服务(后台运行)
# 后台启动(-d),首次启动/配置修改后加--build(这里无自定义镜像,可省略)
docker-compose up -d
验证启动状态
# 查看Compose管理的容器状态
docker-compose ps
# 查看Nginx日志(实时跟踪)
docker-compose logs -f nginx
常用 Compose 操作(核心)
# 热加载Nginx配置(修改本地配置后执行,无需重启容器)
docker-compose exec nginx nginx -s reload
# 进入Nginx容器(临时操作)
docker-compose exec nginx /bin/bash
# 重启Nginx服务
docker-compose restart nginx
# 停止服务(保留容器/卷)
docker-compose stop
# 停止并删除容器(-v删除卷,--rmi all删除镜像,慎用)
docker-compose down -v
# 查看服务详情
docker-compose config # 验证配置文件语法
docker-compose top # 查看容器内进程
4. 自定义配置 / 静态文件(和原生方式一致)
- 修改静态文件:直接替换
/usr/local/nginx-compose/html下的index.html、CSS/JS 等 - 修改 Nginx 配置:编辑
/usr/local/nginx-compose/conf/conf.d/default.conf(如反向代理、HTTPS),改完执行docker-compose exec nginx nginx -s reload热加载
三、两种部署方式对比
| 特性 | Docker 原生命令 | Docker Compose |
|---|---|---|
| 配置方式 | 命令行参数 | 配置文件(yml),可版本控制 |
| 多容器管理 | 需逐个命令操作 | 一键启停所有服务 |
| 可读性 / 维护性 | 参数多,易忘 / 易输错 | 配置文件清晰,便于团队协作 |
| 扩展能力 | 扩展多容器(如 Nginx+PHP)复杂 | 只需在 yml 中新增服务,一键部署 |
| 适用场景 | 快速验证、临时部署 | 生产环境、长期维护、多容器场景 |
总结
- Docker 原生命令:适合快速验证 Nginx 部署,核心是
run命令 + 卷挂载(配置 / 静态文件 / 日志) - Docker Compose:是推荐方式,通过
docker-compose.yml统一管理容器配置,支持一键启停、热加载,适配生产 / 多容器场景 - 生产环境配置:必加
restart: always保证服务可用性,且通过卷挂载实现配置 / 数据持久化,修改配置后优先用nginx -s reload热加载