Nginx + Docker 实战部署
本文由 码农资讯网 精心整理,介绍如何在 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)。
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!