插件窝 干货文章 Docker上如何部署Nginx

Docker上如何部署Nginx

Nginx Docker 容器 conf 887    来源:    2025-04-27

在 Docker 上部署 Nginx 是一个快速且标准化的过程,以下是详细步骤和说明:


1. 安装 Docker

确保系统已安装 Docker:

# 检查Docker版本(确认是否安装)
docker --version

# 若未安装,根据系统选择命令:
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install docker.io

# CentOS
sudo yum install docker
sudo systemctl start docker

2. 拉取 Nginx 官方镜像

从 Docker Hub 获取最新版 Nginx 镜像:

docker pull nginx:latest

3. 运行 Nginx 容器

基础运行(测试用)

docker run --name my-nginx -p 80:80 -d nginx
  • --name my-nginx:容器命名为 my-nginx
  • -p 80:80:将宿主机的 80 端口映射到容器的 80 端口。
  • -d:后台运行容器。

访问 http://localhost 即可看到 Nginx 欢迎页。


4. 自定义配置(生产推荐)

步骤 1:创建本地配置和资源目录

mkdir -p ~/nginx-docker/{conf,html,logs}

步骤 2:复制默认配置(可选)

# 启动临时容器复制默认配置
docker run --name tmp-nginx -d nginx
docker cp tmp-nginx:/etc/nginx/nginx.conf ~/nginx-docker/conf/
docker cp tmp-nginx:/etc/nginx/conf.d ~/nginx-docker/conf/
docker rm -f tmp-nginx

步骤 3:挂载自定义配置和资源

docker run --name my-nginx \
  -p 80:80 \
  -v ~/nginx-docker/html:/usr/share/nginx/html \
  -v ~/nginx-docker/conf/nginx.conf:/etc/nginx/nginx.conf \
  -v ~/nginx-docker/conf/conf.d:/etc/nginx/conf.d \
  -v ~/nginx-docker/logs:/var/log/nginx \
  -d nginx
  • -v:挂载宿主机目录到容器内,实现配置持久化。

5. 验证容器状态

docker ps -a | grep my-nginx
docker logs my-nginx  # 查看日志

6. 其他常用操作

重启/停止容器

docker restart my-nginx
docker stop my-nginx

进入容器内部

docker exec -it my-nginx /bin/bash

删除容器

docker rm -f my-nginx

7. 使用 Docker Compose(推荐)

创建 docker-compose.yml 文件:

version: '3'
services:
  nginx:
    image: nginx:latest
    container_name: my-nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ~/nginx-docker/html:/usr/share/nginx/html
      - ~/nginx-docker/conf:/etc/nginx
      - ~/nginx-docker/logs:/var/log/nginx
    restart: always

启动服务:

docker-compose up -d

常见问题排查

  1. 端口冲突:确保宿主机 80 端口未被占用(如 Apache)。
  2. 权限问题:若挂载失败,尝试 chmod -R 755 ~/nginx-docker
  3. 配置错误:通过 docker logs my-nginx 查看错误日志。

通过以上步骤,你可以灵活地在 Docker 中部署 Nginx,并根据需求自定义配置。Docker 的隔离性和便携性使得 Nginx 的部署和管理更加高效。