插件窝 干货文章 CentOS7 Docker Nginx部署及运行的方法

CentOS7 Docker Nginx部署及运行的方法

Nginx Docker conf bash 802    来源:    2025-04-22

CentOS 7 上 Docker 部署 Nginx 的完整指南

准备工作

  1. 确保已安装 Docker

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install docker-ce docker-ce-cli containerd.io
    sudo systemctl start docker
    sudo systemctl enable docker
    
  2. 验证 Docker 安装

    docker --version
    

部署 Nginx

方法一:直接运行 Nginx 容器

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

方法二:使用自定义配置部署

  1. 创建本地目录存放 Nginx 配置和网站文件

    mkdir -p ~/nginx/{conf,html,logs}
    
  2. 获取默认 Nginx 配置文件

    docker run --name tmp-nginx -d nginx
    docker cp tmp-nginx:/etc/nginx/nginx.conf ~/nginx/conf/
    docker cp tmp-nginx:/etc/nginx/conf.d ~/nginx/conf/
    docker rm -f tmp-nginx
    
  3. 创建自定义 index.html (可选)

    echo "<h1>My Custom Nginx Page</h1>" > ~/nginx/html/index.html
    
  4. 运行带自定义配置的容器

    docker run --name mynginx \
    -p 80:80 \
    -v ~/nginx/html:/usr/share/nginx/html \
    -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
    -v ~/nginx/conf/conf.d:/etc/nginx/conf.d \
    -v ~/nginx/logs:/var/log/nginx \
    -d nginx
    

管理 Nginx 容器

  • 查看运行中的容器

    docker ps
    
  • 查看容器日志

    docker logs mynginx
    
  • 进入容器内部

    docker exec -it mynginx bash
    
  • 停止容器

    docker stop mynginx
    
  • 启动已停止的容器

    docker start mynginx
    
  • 重启容器

    docker restart mynginx
    
  • 删除容器

    docker rm mynginx
    

更新 Nginx

  1. 拉取最新 Nginx 镜像

    docker pull nginx:latest
    
  2. 停止并删除旧容器

    docker stop mynginx
    docker rm mynginx
    
  3. 使用相同配置重新创建容器

    docker run --name mynginx \
    -p 80:80 \
    -v ~/nginx/html:/usr/share/nginx/html \
    -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
    -v ~/nginx/conf/conf.d:/etc/nginx/conf.d \
    -v ~/nginx/logs:/var/log/nginx \
    -d nginx
    

使用 Docker Compose (推荐)

  1. 安装 Docker Compose

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    
  2. 创建 docker-compose.yml 文件

    version: '3'
    services:
     nginx:
       image: nginx:latest
       container_name: mynginx
       ports:
         - "80:80"
       volumes:
         - ~/nginx/html:/usr/share/nginx/html
         - ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
         - ~/nginx/conf/conf.d:/etc/nginx/conf.d
         - ~/nginx/logs:/var/log/nginx
       restart: unless-stopped
    
  3. 启动服务

    docker-compose up -d
    

常见问题解决

  1. 端口冲突:如果 80 端口被占用,可以改为其他端口如 -p 8080:80

  2. 权限问题:如果遇到权限错误,尝试:

    sudo chmod -R 755 ~/nginx
    
  3. 配置文件错误:检查 Nginx 配置语法:

    docker exec mynginx nginx -t
    
  4. 查看运行中的 Nginx 进程

    docker top mynginx
    

按照以上步骤,您应该能够在 CentOS 7 上成功部署并运行 Docker 化的 Nginx 服务。