使用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. 配置文件权限‌:挂载的配置文件需具有正确权限
相关推荐
丘山子8 分钟前
DNS 原理入门
前端·后端·面试
你知道烟火吗17 分钟前
谈谈对反射的理解?
java·开发语言·spring boot·后端
我爱996!21 分钟前
Spring IoC&DI
java·后端·spring
创码小奇客1 小时前
深度对比:RocketMQ 凭什么成为阿里系首选消息队列?
后端·消息队列·trae
盖世英雄酱581361 小时前
事务报错,为何数据还是插入成功了❓
java·数据库·后端
it自1 小时前
Redisson在Spring Boot项目中的集成与实战
java·spring boot·redis·后端·缓存
kaliarch1 小时前
Terraform Authoring Operations Professional 认证考试经验分享:从备考到实战全攻略
后端
kaliarch2 小时前
迈向云基础设施自动化 - Terraformer 助力腾讯云资源管理转型
后端·云原生·自动化运维
AQin10122 小时前
一篇文章带你记住 OSI 和 TCP/IP 模型
后端·网络协议