Nginx + Docker 实战部署

阅读:14 2025-07-24

本文由 码农资讯网 精心整理,介绍如何在 Docker 环境中快速部署 Nginx,实现高效的容器化 Web 服务。文章涵盖 Nginx 镜像选择、Dockerfile 自定义构建、反向代理配置及实际运维技巧,是 DevOps 和运维工程师必备的 Nginx 教程之一。


一、为什么选择 Nginx + Docker

Docker 容器化部署 让应用的环境一致性和迁移性更强,而 Nginx 作为轻量级高性能 Web 服务器,特别适合放入容器中:

  • 快速启动,内存占用少。

  • 易于配置静态资源、反向代理和负载均衡。

  • 通过 Docker Compose 可方便管理多个服务。


二、快速运行官方 Nginx 容器

要快速运行 Nginx,只需执行:

docker run -d --name nginx-test -p 80:80 nginx:latest
  • -d 后台运行容器。

  • -p 80:80 将宿主机 80 端口映射到容器内 80 端口。

执行后访问 http://localhost 即可看到 Nginx 欢迎页面。


三、自定义 Nginx 配置

如果我们要部署自己的 nginx.conf 和静态资源,可以使用 Docker Volume 挂载:

docker run -d \
  --name nginx-custom \
  -p 8080:80 \
  -v /mydata/nginx/html:/usr/share/nginx/html \
  -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
  nginx:latest

这样可以自定义首页内容和 Nginx 配置。


四、使用 Dockerfile 构建自定义镜像

如果想将配置与资源直接打包进镜像,可写一个 Dockerfile

FROM nginx:latest
COPY ./html /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/nginx.conf

然后执行:

docker build -t my-nginx .
docker run -d -p 8080:80 my-nginx

五、Nginx + Docker Compose 一键部署

当我们要同时启动 Nginx、PHP-FPM、MySQL 等服务时,可以使用 docker-compose.yml

version: '3'
services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx/conf:/etc/nginx/conf.d
      - ./nginx/html:/usr/share/nginx/html
    depends_on:
      - php
  php:
    image: php:7.4-fpm
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root

执行 docker-compose up -d 即可一键启动完整服务。


六、生产环境优化建议

  • 使用 多阶段构建 减小镜像体积。

  • 启用 Gzip 压缩 和缓存配置,提升访问速度。

  • 使用 Docker Swarm 或 Kubernetes 配合 Nginx Ingress 实现高可用。


七、总结

通过 Docker 容器运行 Nginx 能极大简化运维流程。结合 Docker Compose 和 CI/CD 工具,你可以轻松完成从开发到上线的自动化部署。
更多 Nginx教程Docker部署实战,请关注 码农资讯网(www.codesou.cn)


标签: Nginx
声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!