使用Docker-Compose快速部署Nginx服务

前言

Nginx是一款高性能的Web服务器和反向代理工具,结合Docker Compose可以实现快速部署和配置管理。通过本教程可以学习到docker-compose.yml文件一键部署Nginx服务。


准备工作

  1. 确保已安装 Docker 和 Docker Compose:

    css 复制代码
    bashCopy Code
    # 检查版本(Docker 20.10+,Docker Compose 2.0+)
    docker --version
    docker-compose --version
  2. 创建项目目录:

    bash 复制代码
    mkdir nginx-docker && cd nginx-docker

配置 Docker Compose 文件

  1. 创建 docker-compose.yml

    bash 复制代码
    touch docker-compose.yml
  2. 编辑文件内容:

    yaml 复制代码
    version: '3.8'  # 使用兼容的 Compose 版本
    
    services:
      nginx:
        image: nginx:latest  # 使用官方最新镜像
        container_name: my-nginx  # 自定义容器名称
        restart: always  # 自动重启
        ports:
          - "80:80"     # 映射宿主机80端口到容器80端口
          - "443:443"   # 如需HTTPS可启用
        volumes:
          - ./html:/usr/share/nginx/html  # 挂载静态网站目录
          - ./nginx.conf:/etc/nginx/nginx.conf  # 挂载自定义配置文件
          - ./conf.d/:/etc/nginx/conf.d/  # 子配置目录挂载
          - ./logs:/var/log/nginx  # 挂载日志目录
        networks:
          - nginx-net  # 自定义网络(可选)
    
    networks:
      nginx-net:
        driver: bridge

启动 Nginx 服务

  1. 创建所需目录:

    arduino 复制代码
    mkdir html logs conf.d
  2. 启动容器(后台模式):

    复制代码
    docker-compose up -d
  3. 验证服务状态:

    shell 复制代码
    docker-compose ps -a
    # 或浏览器访问 http://localhost

自定义配置

1. 修改默认页面

html 目录中创建 index.html

bash 复制代码
echo "<h1>Hello Docker Nginx!</h1>" > html/index.html

2. 自定义 Nginx 配置

  1. 生成默认配置文件:

    bash 复制代码
    docker run --rm nginx cat /etc/nginx/nginx.conf > nginx.conf
  2. 修改 nginx.conf 后重启服务:

    css 复制代码
    bashCopy Code
    docker-compose restart nginx

常用命令

命令 说明
docker-compose logs -f 查看实时日志
docker-compose restart nginx 重启服务
docker-compose down 停止并删除容器
docker-compose exec nginx bash 进入容器终端

注意事项

  1. 端口冲突‌:确保宿主机 80/443 端口未被占用
  2. 配置文件权限‌:挂载的配置文件需具有正确权限
相关推荐
元亓亓亓几秒前
SSM--day4--SpringMVC(补充)
java·后端·ssm
沐雨橙风ιε44 分钟前
Spring Boot整合Apache Shiro权限认证框架(应用篇)
java·spring boot·后端·apache shiro
考虑考虑1 小时前
fastjson调用is方法开头注意
java·后端·java ee
小蒜学长1 小时前
springboot基于javaweb的小零食销售系统的设计与实现(代码+数据库+LW)
java·开发语言·数据库·spring boot·后端
brzhang1 小时前
为什么 OpenAI 不让 LLM 生成 UI?深度解析 OpenAI Apps SDK 背后的新一代交互范式
前端·后端·架构
EnCi Zheng2 小时前
JPA 连接 PostgreSQL 数据库完全指南
java·数据库·spring boot·后端·postgresql
brzhang2 小时前
OpenAI Apps SDK ,一个好的 App,不是让用户知道它该怎么用,而是让用户自然地知道自己在做什么。
前端·后端·架构
LucianaiB2 小时前
从玩具到工业:基于 CodeBuddy code CLI 构建电力变压器绕组短路智能诊断系统
后端
武子康3 小时前
大数据-118 - Flink 批处理 DataSet API 全面解析:应用场景、代码示例与优化机制
大数据·后端·flink
不要再敲了3 小时前
Spring Security 完整使用指南
java·后端·spring