使用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. 配置文件权限‌:挂载的配置文件需具有正确权限
相关推荐
慕容静漪20 分钟前
如何本地安装Python Flask并结合内网穿透实现远程开发
开发语言·后端·golang
ErizJ22 分钟前
Golang|锁相关
开发语言·后端·golang
烛阴1 小时前
手把手教你搭建 Express 日志系统,告别线上事故!
javascript·后端·express
良许Linux1 小时前
请问做嵌入式开发C语言应该学到什么水平?
后端
Pitayafruit1 小时前
SpringBoot整合Flowable【08】- 前后端如何交互
spring boot·后端·workflow
小丁爱养花2 小时前
驾驭 Linux 云: JavaWeb 项目安全部署
java·linux·运维·服务器·spring boot·后端·spring
uhakadotcom2 小时前
Amazon GameLift 入门指南:六大核心组件详解与实用示例
后端·面试·github
小杨4042 小时前
springboot框架项目实践应用十九(nacos配置中心)
spring boot·后端·spring cloud
终身学习基地4 小时前
第二篇:go包管理
开发语言·后端·golang