手把手教你使用 Docker 部署 Nginx 教程

1、寻找 Nginx 镜像

你可以在 轩辕镜像 中找到 Nginx 镜像页面:
👉 https://xuanyuan.cloud/r/library/nginx

在页面中会看到多种拉取方式,下面我们逐一说明。

2、下载 Nginx 镜像

2.1 使用轩辕镜像登录验证的方式拉取

docker pull docker.xuanyuan.run/library/nginx:latest

2.2 拉取后改名

docker pull docker.xuanyuan.run/library/nginx:latest \
&& docker tag docker.xuanyuan.run/library/nginx:latest library/nginx:latest \
&& docker rmi docker.xuanyuan.run/library/nginx:latest

说明:

  • docker pull:从轩辕镜像加速拉取镜像
  • docker tag:将镜像重命名为官方标准名称 library/nginx:latest,后续运行命令更简洁
  • docker rmi:删除临时镜像标签,避免占用额外存储空间

2.3 使用免登录方式拉取(推荐)

基础拉取命令:

docker pull xxx.xuanyuan.run/library/nginx:latest

带重命名的完整命令:

docker pull x8rgmbsueftaqi.xuanyuan.run/library/nginx:latest \
&& docker tag x8rgmbsueftaqi.xuanyuan.run/library/nginx:latest library/nginx:latest \
&& docker rmi x8rgmbsueftaqi.xuanyuan.run/library/nginx:latest

说明:

免登录方式无需配置账户信息,新手可直接使用;镜像内容与 docker.xuanyuan.run 源完全一致,仅拉取地址不同。

2.4 官方直连方式

若网络可直连 Docker Hub,或已配置轩辕镜像加速器,可直接拉取官方镜像:

docker pull library/nginx:latest

2.5 查看镜像是否拉取成功

docker images

若输出类似以下内容,说明镜像下载成功:

REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
library/nginx       latest    f652ca386ed1   2 weeks ago    142MB

3、部署 Nginx

以下使用已下载的 library/nginx:latest 镜像,提供三种部署方案,可根据场景选择。

3.1 快速部署(最简方式)

适合测试或临时使用,命令如下:

# 启动 Nginx 容器,命名为 nginx-test
# 宿主机 80 端口映射到容器 80 端口(Nginx 默认端口)
docker run -d --name nginx-test -p 80:80 library/nginx:latest

核心参数说明:

  • --name nginx-test:为容器指定名称,便于后续管理(如停止、重启)
  • -p 80:80:端口映射,格式为「宿主机端口:容器端口」
  • -d:后台运行容器

验证方式:

浏览器访问 http://服务器IP,应显示 Nginx 官方欢迎页。

3.2 挂载目录(推荐方式,适合实际项目)

通过挂载宿主机目录,实现「配置持久化」「日志分离」「网页文件独立管理」,步骤如下:

第一步:创建宿主机目录

# 一次性创建 html(网页)、conf(配置)、logs(日志)三个目录
mkdir -p /data/nginx/{html,conf,logs}

第二步:准备测试网页

# 向 html 目录写入测试内容
echo "Hello from Xuanyuan Nginx!" > /data/nginx/html/index.html

第三步:启动容器并挂载目录

docker run -d --name nginx-web \-p 80:80 -p 443:443 \  # 映射 HTTP(80) 和 HTTPS(443) 端口-v /data/nginx/html:/usr/share/nginx/html \  # 网页目录挂载-v /data/nginx/conf:/etc/nginx/conf.d \      # 配置目录挂载-v /data/nginx/logs:/var/log/nginx \        # 日志目录挂载library/nginx:latest

目录映射说明:

宿主机目录 容器内目录 用途
/data/nginx/html /usr/share/nginx/html 存放网页文件(如 HTML、CSS)
/data/nginx/conf /etc/nginx/conf.d 存放 Nginx 配置文件
/data/nginx/logs /var/log/nginx 存放访问日志、错误日志

第四步:配置文件示例

新建 Nginx 基础配置文件 /data/nginx/conf/default.conf

server {listen       80;          # 监听 80 端口(HTTP)server_name  _;           # 匹配所有域名(可替换为实际域名,如 example.com)root   /usr/share/nginx/html;  # 网页根目录index  index.html;             # 默认首页access_log  /var/log/nginx/access.log;  # 访问日志路径error_log   /var/log/nginx/error.log;   # 错误日志路径# 处理请求的核心规则location / {try_files $uri $uri/ =404;  # 尝试访问文件/目录,不存在则返回 404}
}

配置更新后重启容器

修改配置文件后,需重启容器使配置生效:

docker restart nginx-web

3.3 docker-compose 部署(适合企业级场景)

通过 docker-compose.yml 统一管理容器配置,支持一键启动/停止,步骤如下:

第一步:创建 docker-compose.yml 文件

version: '3'  # 指定 docker-compose 语法版本
services:nginx:image: library/nginx:latest  # 使用的镜像container_name: nginx-service  # 容器名称ports:- "80:80"   # HTTP 端口映射- "443:443" # HTTPS 端口映射volumes:- ./html:/usr/share/nginx/html   # 网页目录(相对路径,与 yml 同目录)- ./conf:/etc/nginx/conf.d       # 配置目录- ./logs:/var/log/nginx          # 日志目录restart: always  # 容器退出后自动重启(保障服务可用性)

第二步:启动服务

docker-compose.yml 所在目录执行:

docker compose up -d

补充说明:

  • 若需修改配置/网页,直接操作当前目录下的 htmlconf 文件夹即可
  • 停止服务命令:docker compose down
  • 查看服务状态:docker compose ps

4、结果验证

通过以下方式确认 Nginx 服务正常运行:

  1. 浏览器验证
    访问 http://服务器IP,应显示之前写入的测试内容(Hello from Xuanyuan Nginx!)或 Nginx 欢迎页。

  2. 查看容器状态

    docker ps
    

    STATUS 列显示 Up,说明容器正常运行。

  3. 查看容器日志
    nginx-web 容器为例(若用 docker-compose 则为 nginx-service):

    docker logs nginx-web
    

    无报错信息即表示服务启动正常。

5、常见问题

5.1 访问不到网页?

排查方向:

  • 安全组:检查云服务器安全组是否放行 80(HTTP)、443(HTTPS)端口
  • 防火墙:检查服务器本地防火墙(如 ufwfirewalld)是否开放对应端口
    • ufw 开放端口:sudo ufw allow 80/tcp && sudo ufw allow 443/tcp
    • firewalld 开放端口:sudo firewall-cmd --add-port=80/tcp --permanent && sudo firewall-cmd --add-port=443/tcp --permanent && sudo firewall-cmd --reload
  • 端口冲突:执行 netstat -tuln | grep 80 查看 80 端口是否被其他进程占用,若占用需更换宿主机端口(如 -p 8080:80

5.2 如何启用 HTTPS?

  1. 准备证书:获取 SSL 证书文件(通常包含 fullchain.pem 证书链和 privkey.pem 私钥),放到宿主机目录(如 /data/nginx/certs)。
  2. 挂载证书目录:在容器启动命令中添加证书挂载参数:
    -v /data/nginx/certs:/etc/nginx/certs
    
  3. 修改 Nginx 配置:更新 default.conf,添加 HTTPS 监听规则:
    server {listen 443 ssl;  # 监听 443 端口(HTTPS)server_name 你的域名;  # 替换为实际域名(如 example.com)# 证书路径(容器内路径,对应宿主机 /data/nginx/certs)ssl_certificate     /etc/nginx/certs/fullchain.pem;ssl_certificate_key /etc/nginx/certs/privkey.pem;root   /usr/share/nginx/html;index  index.html;
    }
    
  4. 重启容器docker restart nginx-web

5.3 日志文件过大怎么办?

  • 方案1:使用 logrotate 切割日志(推荐):
    在宿主机创建 /etc/logrotate.d/nginx 配置文件,设置日志切割规则(如按天切割、保留 7 天):
    /data/nginx/logs/*.log {dailyrotate 7compressdelaycompressmissingoknotifemptycreate 0640 root root
    }
    
  • 方案2:日志收集系统
    配合 ELK Stack(Elasticsearch + Logstash + Kibana)或 Loki 等工具,实现日志集中收集、存储和分析。

5.4 容器内时区不正确?

在启动容器时,通过 -e 参数设置时区(以上海时区 Asia/Shanghai 为例):

docker run -d -e TZ=Asia/Shanghai \--name nginx-web \-p 80:80 -p 443:443 \-v /data/nginx/html:/usr/share/nginx/html \-v /data/nginx/conf:/etc/nginx/conf.d \-v /data/nginx/logs:/var/log/nginx \library/nginx:latest

结尾

至此,你已掌握基于轩辕镜像的Nginx镜像拉取与Docker部署全流程——从镜像下载验证,到不同场景的部署实践,再到问题排查,每个步骤都配备了完整的操作命令和说明。对于初学者而言,建议先从「快速部署」熟悉流程,再尝试「目录挂载」方案理解持久化配置的意义,最后根据需求进阶到「docker-compose」管理。

在实际使用中,若遇到文档未覆盖的问题,可结合docker logs 容器名查看日志定位原因,或参考Nginx官方文档补充学习。随着实践深入,你还可以基于本文基础,进一步探索Nginx的反向代理、负载均衡、HTTPS高级配置等功能,让Nginx更好地支撑你的业务需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建站公司服务网页游戏开服表大全

TJpgDec—轻量级JPEG解码器 本文由乌合之众lym瞎编,欢迎转载blog.cnblogs.net/oloroso 下文中解码一词皆由decompression/decompress翻译而来。 TJpgDec是一个为小型嵌入式系统高度优化的创建JPEG图像的解码模块。它工作时占用的内存非常低,以便它可以集…

网站建设营销模板网站扁平化设计理念

目录 结论先说 实验 结论 实验机器的cpu配置 用EDGE拉九路​编辑 google拉五路就拉不出来了 资源使用情况 edge报错​编辑 结论先说 实验 用chrome先拉九路,再想用edge拉九路,发现拉五路后怎么也拉不出; 后面发现cpu爆满;切…

自己搭建一个网站需要多少钱?手机网站搭建教程

来源:AI前线作者:Ben Dickson译者:盖策划:凌敏本文来自 BDTechTalks 网站的“AI 研究论文评论”专栏。该专栏提供人工智能最新发现的系列解读文章。尽管人工智能研究人员正力图建立能在围棋、星际争霸到 Dota 等复杂游戏中击败人类…

CF2129 CF1951 VP 记录

非常好 hfu 开发的神秘打一场比赛改两场题,使我的国庆假期旋转. CF2129 Div1 B 逆序对考虑在较小的数处统计贡献,枚举序列里面每个数,一并枚举逆序对的另一个数. \(p_i\) 有贡献当且 \(i>j\),\(2n-p_i\) 有贡献…

PWN-BUUCTF-test_your_nc

BUUCTF-test_your_nc的WPpwn 题目题解 使用nc连接题目地址,输入ls查看目录。使用cat命令获取flag文件内容得到flag。总结 题目考察nc的使用方法本文来自博客园,作者:ffff5,转载请注明原文链接:https://www.cnblog…

做网站设计需要具备哪些重庆市工程建设服务中心

中国科学院自动化研究所智能交互团队在环境鲁棒性、轻量级建模、自适应能力以及端到端处理等几个方面进行持续攻关,在语音识别方面获新进展,相关成果将在全球语音学术会议INTERSPEECH2019发表。现有端到端语音识别系统难以有效利用外部文本语料中的语言学…

电商网站建设目标分析的方法淘宝客网站建设方案书

机器学习是一项经验技能,经验越多越好。在项目建立的过程中,实 践是掌握机器学习的最佳手段。在实践过程中,通过实际操作加深对分类和回归问题的每一个步骤的理解,达到学习机器学习的目的 预测模型项目模板 不能只通过阅读来掌握…

Kafka Windows 安装启动与 YAML 配置全解析 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

昆明专业建站装修设计公司服务

参考链接 FFmpeg源代码简单分析:avcodec_close()_雷霄骅的博客-CSDN博客_avcodec_close avcodec_close() 该函数用于关闭编码器avcodec_close()函数的声明位于libavcodec\avcodec.h,如下所示。 ​该函数只有一个参数,就是需要关闭的编码器的…

使用rem布局的网站网站开发5人小组分工

. 单论品牌(主要以登山鞋及徙步鞋为主): 高级品牌:SCARPA、ASOLO、MONTRAIL、ZAMBERLAN、vasque、Lowa、La Sportiva 价格都较高,单价都在千元以上,品质一流,做工精细。 中档品牌:Tr…

详细介绍:计算机视觉:OpenCV+Dlib 人脸检测

详细介绍:计算机视觉:OpenCV+Dlib 人脸检测pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &qu…

怀化 网站建设国内网页加速器

文章目录 企业无线局域网部署最佳实践引言1. 无线网规划和设计a. 选择合适的频宽b. 网络规划工具c. 考虑物理环境d. 用户密度和需求e. 未来扩展f. 安全性和策略g. 测试和验证2. 无线局域网容量2.1 用户和设备预测2.2 应用流量分析2.3 带宽管理2.4 无线技术选择2.5 网络健康检查…

python 老生常谈的找2个excel相同列的行,把其中一个excel行的对应的值放入到另一个excel中

有个excel叫典型草原降水强度,还有个excel叫典型草原数浓度,这两个excel里面time和data_name列,time列里面的数据格式是YYYY-M-D空格H:S,data_name列里面是XXXX-时间戳,53192-20240510101700-20240510105559-0_N…

可信网站标识河南省考生服务平台官网

目录 服务端这么做服务端告知客户端使用 Basic Authentication 方式进行认证服务端接收并处理客户端按照 Basic Authentication 方式发送的数据 客户端这么做如果客户端是浏览器如果客户端是 RestTemplat如果客户端是 HttpClient 其它参考 服务端这么做 服务端告知客户端使用 …

wordpress建站优缺点服务中心网站建设意见

less 用来浏览超过一页的文件 用 / 可用来查找关键字 q键退出 cat -n 3.txt | less行号显示grep 文本处理工具,以行为单位找关键字 ls -l /boot | grep ^l grep 关键字 文件名 grep runlevel /etc/inittab 参数 -i忽略大小写 -n显示行号 -v排除关键字&#xff0…

【K8S】Kubernetes 调度器深度解析:原理与源码分析

@目录一、调度器架构概述1.1 核心架构设计1.2 调度器工作流程二、调度队列机制2.1 优先级队列实现2.2 Pod 优先级与抢占三、调度框架与插件系统3.1 框架扩展点3.2 插件注册与执行四、调度周期详细分析4.1 调度算法入口…

Elasticsearch MCP 服务器:与你的 Index 聊天 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

AI大事记4:从 ELIZA 到 ChatGPT—— 对话式 AI 的世纪征程(上) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

堆叠集成

为了让你彻底理解堆叠集成模型(尤其是项目中针对时序数据和小样本场景的定制化设计),我会从“核心概念拆解(结合项目实例)→ 分阶段运作流程(附代码细节)→ 设计逻辑深层原因(对应项目痛点)”三个维度,逐点展…

深入解析:逻辑回归(Logistic Regression)

深入解析:逻辑回归(Logistic Regression)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…