插件窝 干货文章 Docker怎么安装Nginx并修改Nginx配置文件

Docker怎么安装Nginx并修改Nginx配置文件

Nginx 配置 conf Docker 711    来源:    2025-04-27

Docker 安装 Nginx 并修改配置文件指南

安装 Nginx

  1. 拉取 Nginx 官方镜像

    docker pull nginx
    
  2. 运行 Nginx 容器(简单启动):

    docker run --name my-nginx -p 80:80 -d nginx
    

修改 Nginx 配置文件

方法一:直接进入容器修改(临时修改)

  1. 进入正在运行的 Nginx 容器:

    docker exec -it my-nginx bash
    
  2. Nginx 配置文件通常位于:

    • 主配置文件:/etc/nginx/nginx.conf
    • 默认站点配置:/etc/nginx/conf.d/default.conf
  3. 使用容器内的编辑器(如 vi 或 nano)修改配置文件后,重新加载 Nginx:

    nginx -s reload
    

方法二:挂载本地配置文件(推荐方式)

  1. 首先从容器中复制默认配置文件到本地:

    docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf
    docker cp my-nginx:/etc/nginx/conf.d/default.conf ./default.conf
    
  2. 创建本地目录存放配置文件和网站文件:

    mkdir -p ~/nginx/{conf,html,logs}
    mv nginx.conf default.conf ~/nginx/conf/
    
  3. 使用挂载卷重新启动容器:

    docker run --name my-nginx \
     -p 80:80 \
     -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
     -v ~/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf \
     -v ~/nginx/html:/usr/share/nginx/html \
     -v ~/nginx/logs:/var/log/nginx \
     -d nginx
    
  4. 现在可以直接在本地修改配置文件,修改后需要重启容器或重新加载配置:

    docker restart my-nginx
    # 或者
    docker exec my-nginx nginx -s reload
    

方法三:使用自定义 Dockerfile

  1. 创建 Dockerfile

    FROM nginx
    COPY custom.conf /etc/nginx/conf.d/
    COPY html/ /usr/share/nginx/html/
    
  2. 构建自定义镜像:

    docker build -t my-custom-nginx .
    
  3. 运行自定义镜像:

    docker run --name my-nginx -p 80:80 -d my-custom-nginx
    

验证配置

  1. 检查 Nginx 配置是否正确:

    docker exec my-nginx nginx -t
    
  2. 重新加载配置(不重启容器):

    docker exec my-nginx nginx -s reload
    

常用 Nginx 配置修改示例

修改 default.conf 示例:

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        # 启用 gzip 压缩
        gzip on;
        gzip_types text/plain text/css application/json application/javascript text/xml;
    }

    # 自定义错误页面
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

通过以上方法,你可以灵活地在 Docker 中管理 Nginx 及其配置。方法二(挂载本地配置文件)是最推荐的,因为它便于版本控制和持续部署。