Ubuntu VPS 上 Docker 部署 Nginx 服务器详细教程

news/2025/1/19 11:22:54/

引言

本文将详细介绍如何在 Azure 100 学生订阅中创建一台 Ubuntu VPS,并在其上利用 Docker 部署 Nginx 服务器。我们将涵盖 Docker 和 Nginx 的基础概念,以及部署过程中所需的每个步骤。

Docker 简介

Docker 是一个开源的容器化平台,它可以让开发者打包他们的应用程序及其依赖项到一个可移植的容器中。这些容器可以在任何运行 Docker 引擎的主机上运行,从而实现快速部署和扩展。

Nginx 简介

Nginx 是一款高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx 因其简单、高效、稳定以及丰富的功能,被广泛用于作为 Web 服务器、负载均衡器等。

在 Ubuntu 上通过 Docker 部署 Nginx

1. 创建 Ubuntu VPS
  • 登录 Azure 门户,创建一个新的虚拟机。
  • 选择 Ubuntu 作为操作系统,并配置所需的资源。
  • 完成创建后,获取虚拟机的公网 IP 地址。
2. 连接到 Ubuntu 虚拟机
  • 使用 SSH 客户端连接到虚拟机。
  • 更新系统软件包: 

    sudo apt update && sudo apt upgrade
    
3. 安装 Docker
  • 安装 Docker CE: 

    sudo apt install docker.io
    
  • 添加当前用户到 docker 组: 

    sudo usermod -aG docker $USER
    
  • 重启 Docker: 

    sudo systemctl restart docker
    
4. 拉取 Nginx 镜像
  • 从 Docker Hub 拉取官方 Nginx 镜像: 

    docker pull nginx
    
5. 运行 Nginx 容器
  • 运行 Nginx 容器,并将容器的 80 端口映射到主机的 80 端口: 

    docker run -d -p 80:80 nginx
    
    • -d:后台运行容器
    • -p 80:80:将容器的 80 端口映射到主机的 80 端口
6. 验证部署
  • 在浏览器中输入虚拟机的公网 IP 地址,如果看到 Nginx 的欢迎页面,则部署成功。

总结

通过以上步骤,我们成功地在 Azure 100 学生订阅的 Ubuntu VPS 上利用 Docker 部署了 Nginx 服务器

重要提示: 如果找不到可以免费申请 Azure 100 学生订阅 Edu邮箱的地方,可以通过参考我的笔记pdf文件 s3.tebi.io/notes-image/edu%E7%AC%94%E8%AE%B0.pdf

扩展阅读

  • Docker 官方文档:https://docs.docker.com/
  • Nginx 官方文档:https://nginx.org/en/docs/

注意:

  • 参数说明:
    • -d 参数:以守护进程的方式在后台运行容器。
    • -p 80:80 参数:将容器内部的 80 端口映射到宿主机的 80 端口,这样我们就可以通过宿主机的 80 端口访问容器中的 Nginx 服务。
  • 其他配置:
    • 可以通过修改 Nginx 的配置文件来定制化 Nginx 服务。配置文件通常位于容器内的 /etc/nginx/nginx.conf
    • 可以使用 Docker Compose 来管理多个容器。
  • 安全性:
    • 在生产环境中,建议使用 HTTPS 协议,并配置 SSL 证书。
    • 为了提高安全性,可以限制对 Docker 引擎的访问。

本文旨在提供一个基础的部署教程,读者可以根据实际需求进行扩展和定制。


http://www.ppmy.cn/news/1564397.html

相关文章

个人vue3-学习笔记

声明:这只是我个人的学习笔记(黑马),供以后复习用 。一天学一点,随时学随时更新。明天会更好的! 这里只给代码,不给运行结果,看不出来代码的作用我也该进厂了。。。。。 Day1 使用create-vue创建项目。 1.检查版本。 node -v 2.创建项目 npm init vue@latest 可…

Kotlin数据类

在一个规范的系统架构中,数据类通常占据着非常重要的的角色,它们用于将服务器端或数据库中的数据映射到内存中,为编程逻辑提供数据模型的支持;数据类通常需要重写equals()、hashCode()、toString()方法。(hashCode()方…

二、点灯基础实验

嵌入式基础实验第一个就是点灯,地位相当于编程界的hello world。 如下为LED原理图,要让相应LED发光,需要给I/O口设置输出引脚,低电平,二极管才会导通 2.1 打开初始工程,编写代码 以下会实现BLINKY常亮&…

Microsoft Sql Server 2019 执行计划

1、什么是执行计划 用户提交的 sql 语句,数据库查询优化器,经过分析生成多个数据库可以识别的高效执行查询方式。然 后优化器会在众多执行计划中找出一个资源使用最少,而不是最快的执行方案,给你展示出来,可以是 文本格式,也可以是图形化的执行方案。 2、为什么要读懂执…

idea本地jar包添加到项目的maven库 mvn install:install-file

背景 最近在开发项目中需要对接海康威视摄像头&#xff0c;进行视频、照片等数据的获取保存&#xff1b;海康提供的sdk的jar包是自己开发的&#xff0c;在maven库中是找不到的&#xff0c;在项目中需要手动指定jar包路径 <dependency><groupId>com.haikang</g…

ansible自动化运维实战--服务端安装、环境配置与测试(1)

文章目录 一、准备5台虚拟机二、ansible服务端安装2.1、epel-release安装与配置2.2、查询ansible源信息2.3、安装ansible2.4、检查ansible安装状态和命令 一、准备5台虚拟机 本文使用的系统是centos9&#xff0c;5台机子的IP规划以及主机名如下&#xff1a; 主机名IPansible1…

Hooks 使用规则

Hooks 使用规则 命名规则 Hook 必须 useXxx 格式来命名。 PS&#xff1a;这种命名规则也很易读&#xff0c;简单粗暴 调用位置 Hook 或自定义 Hook &#xff0c;只能在两个地方被调用 组件内部其他 Hook 内部 组件外部&#xff0c;或一个普通函数中&#xff0c;不能调用…

MySQL(高级特性篇) 06 章——索引的数据结构

一、为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构&#xff0c;就好比一本教科书的目录部分&#xff0c;通过目录找到对应文章的页码&#xff0c;便可快速定位到需要的文章。MySQL中也是一样的道理&#xff0c;进行数据查找时&#xff0c;首先查看查询条件…