欢迎光临
我们一直在努力

云原生基石的试金石:基于 openEuler 部署 Docker 与 Nginx 的全景实录

文章目录

    • 一、 评测环境搭建:虚拟化层准备
      • 1.1 虚拟化平台和镜像源
      • 1.2 虚拟机(VM)创建与硬件配置
      • 1.3 openEuler 24.03 LTS SP2 系统安装
    • 二、 系统基线核验与环境初始化
      • 2.1 版本与网络核验
      • 2.2 DNF 软件源更新
    • 三、 容器化引擎部署(containerd + nerdctl)
      • 3.1 技术选型:为何选择 containerd?
      • 3.2 引擎安装
      • 3.3 守护进程配置与启动
      • 3.4 状态与版本验证
    • 四、 云原生应用部署实战 (Nginx)
      • 4.1 镜像拉取与分层存储
      • 4.2 容器实例化与端口映射
      • 4.3 运行状态检视
    • 五、 部署验证与服务访问
      • 5.1 本地环回测试 (Loopback)
    • 六、总结

摘要: 随着云原生技术栈的演进,操作系统作为承载上层应用与编排系统的数字底座,其稳定性、兼容性与性能表现愈发关键。openEuler,作为面向数字基础设施的开源操作系统,其在云原生场景下的适配能力备受关注。本文基于 openEuler 24.03 LTS SP2 发行版,完整记录了从 VMware 虚拟机配置、系统安装、K8s 核心运行时(containerd)部署,到最终 Nginx 应用容器化运行的全过程。旨在通过详尽的、可复现的步骤,深度评测 openEuler 24.03 LTS 在云原生基础环境搭建中的表现。

一、 评测环境搭建:虚拟化层准备

在这里插入图片描述

一篇严谨的评测始于一个清晰透明的环境配置。我们首先需要一个承载 openEuler 24.03 LTS SP2 的虚拟机环境

1.1 虚拟化平台和镜像源

在这里插入图片描述

本次评测选用 VMware Workstation Pro(您也可以使用 VirtualBox,原理相通)

在这里插入图片描述

我们来到官网 https://www.openeuler.openatom.cn/zh/download/ 获取 openEuler 的安装镜像,选择 openEuler 24.03 LTS SP2 作为长期稳定的安装版本,架构一般为 x86 64 服务器即可,选择最小的下载就行了

1.2 虚拟机(VM)创建与硬件配置

在这里插入图片描述

在 VMware Workstation 中,我们选择创建新的虚拟机

在这里插入图片描述

选择 自定义(高级) 以便精确控制硬件配置,以下将为系统进行详细的部署设置准备:

在这里插入图片描述

选择虚拟机硬件兼容性: 点击下一步保持默认的硬件兼容性即可

在这里插入图片描述

安装客户机操作系统: 这里选择安装程序光盘程序映像文件,点击浏览导入你刚刚下载的 openEuler-24.03-LTS-SP2-x86_64-dvd.iso 镜像文件,然后点击下一步

在这里插入图片描述

选择客户机操作系统: 选择 Linux,版本选择“其他 Linux 5.x 或更高版本 64 位”,然后点击下一步

在这里插入图片描述

命名虚拟机: 虚拟机名称自己起一个,点击浏览,位置改存到 D 盘或 E 盘,然后点击下一步

在这里插入图片描述

处理器配置: 分配 2 个处理器,每个处理器 2 个内核(总共 4 核),以保证 dnf 依赖解析和系统运行的流畅性,然后点击下一步

在这里插入图片描述

此虚拟机的内存: 分配 4096 MB (4 GB) 内存,然后点击下一步

在这里插入图片描述

网络类型: 关键步骤!选择 “使用桥接网络”。这将使虚拟机在局域网中获得一个独立的 IP 地址,便于后续通过浏览器进行外部访问验证

在这里插入图片描述

选择 I/O 控制器类型: 保持默认 LSI Logic SAS,然后点击下一步

在这里插入图片描述 选择磁盘类型: 保持默认 SCSI,然后点击下一步

在这里插入图片描述

选择磁盘: 选择创建新虚拟磁盘,然后点击下一步

在这里插入图片描述

指定磁盘容量: 建议分配 50 GB 空间(选择“将虚拟磁盘存储为单个文件”并“精简置备”),然后点击下一步

在这里插入图片描述

指定磁盘文件: 指定磁盘配置文件名,一般保持默认即可,然后点击下一步

加粗样式

已准备好创建虚拟机: 最后检查以下配置,然后点击完成即可,现在就已经完成了所有的配置

1.3 openEuler 24.03 LTS SP2 系统安装

那么接下来就要开始对系统进行安装了,注意可以使用 ctrl + alt 退出虚拟机的鼠标

在这里插入图片描述

在左侧就能找到刚才创建的虚拟机,选择开启此虚拟机,进入 openEuler 安装程序

在这里插入图片描述

等待程序加载一会儿,然后就会出现这个界面,enter 回车键继续即可,下面的提示点击我已完成安装即可

在这里插入图片描述

等待虚拟机安装程序完成至 100%,接下来在安装信息摘要页面,我们需要完成几项基本配置:

在这里插入图片描述

语言选择: 中文->简体中文,然后点击继续

在这里插入图片描述

然后我们来到这个页面,我们将对这个页面的部分功能进行配置

在这里插入图片描述

  • 软件选择:进入“软件选择”,我们选择 “最小化安装”。这最能模拟服务器的真实环境,也最能体现我们“从零开始”搭建环境的能力
  • 在这里插入图片描述

  • 安装目的地:选择我们创建的 50GB 虚拟磁盘,使用“自动分区”
  • 在这里插入图片描述

  • 网络和主机名:进入“网络和主机名”,打开右上角的以太网开关
  • 在这里插入图片描述

  • 用户设置:选择 root 账户,设置 root 密码,如果是多账户使用,可以再创建普通用户
  • 在这里插入图片描述

    这几个关键的设置好了之后,点击开始安装并等待完成后重启系统即可

    在这里插入图片描述

    登入账户: localhost login 一般为 root,Password 就输入你刚才设置的密码

    二、 系统基线核验与环境初始化

    系统启动后,我们首先进行基线核验,线核验

    2.1 版本与网络核验

    首先,确认操作系统版本是否与预期一致:

    cat /etc/os-release

    在这里插入图片描述

    可以看到的确是 openEuler 和 VERSION="24.03 LTS SP2"

    接下来,核验网络连接。查看 IP 地址并测试外网连通性:

    # 查看 IP 地址
    ip addr show

    # 测试网络连通性
    ping -c 3 openeuler.org

    在这里插入图片描述

    能看到 IP 地址和丢包率为 0% 即可

    2.2 DNF 软件源更新

    使用 dnf 更新一下软件源缓存,确保我们能获取到最新的软件包列表

    # 清理并生成缓存
    sudo dnf clean all
    sudo dnf makecache

    在这里插入图片描述

    三、 容器化引擎部署(containerd + nerdctl)

    引擎部署是云原生实践的核心。在 24.03 LTS 这样的现代操作系统上,我们拥有了更前沿的选择

    3.1 技术选型:为何选择 containerd?

    虽然 docker (Moby) 是最广为人知的容器引擎,但在当今的云原生(尤其是 Kubernetes)生态中,containerd 才是处于“C 位”的核心运行时。docker 本身在后端也依赖于 containerd

    因此,本次评测我们“绕过” Docker 的上层封装,直接 containerd。为了方便操作,我们搭配使用 nerdctl——这是一个与 docker CLI 命令和功能高度兼容的客户端工具

    这种 containerd + nerdctl 的“K8s 原生”组合,能更纯粹地体验 openEuler 24.03 LTS 对核心运行时的支持

    3.2 引擎安装

    openEuler 24.03 的官方源中已经包含了 containerd 和 nerdctl,我们可以直接使用 dnf 一键安装。

    # -y 参数表示自动确认所有依赖项
    sudo dnf install containerd nerdctl -y

    3.3 守护进程配置与启动

    安装完成后,我们需要使用 systemd 来启动 containerd 服务。

    # 1. 立即启动 containerd 服务
    sudo systemctl start containerd

    # 2. 设置 containerd 服务开机自启
    sudo systemctl enable containerd

    systemctl enable 命令的原理是在 /etc/systemd/system/ 目录下的相应 .target(如 multi-user.target.wants/)中创建 containerd.service 的符号链接,确保系统在下次启动到多用户模式时自动拉起该服务

    3.4 状态与版本验证

    验证 containerd 服务是否按预期运行:

    # 检查服务状态
    systemctl status containerd

    同时,我们检查 nerdctl 的版本信息,确认其能与 containerd 正常通信:

    sudo nerdctl version

    四、 云原生应用部署实战 (Nginx)

    环境完备,我们开始部署第一个容器化应用 Nginx

    4.1 镜像拉取与分层存储

    sudo nerdctl pull 命令将从 Docker Hub(默认)拉取 Nginx 的官方镜像。容器镜像采用了联合文件系统(如 OverlayFS),由多个只读层(Layers)构成

    # 拉取最新的 Nginx 稳定版镜像
    sudo nerdctl pull nginx:latest

    4.2 容器实例化与端口映射

    使用 sudo nerdctl run 命令来启动容器

    # -d: 后台(Detached)模式运行
    # -p 8080:80: 端口映射(Host:Container)
    # –name my-web: 指定容器名称
    # nginx: 使用的镜像
    sudo nerdctl run -d -p 8080:80 –name my-web nginx

    -p 880:80是此命令的核心。其底层原理是containerd(及其 CNI 插件,如 bridge)通过 iptables(或 nftables)在宿主机的 NAT 表中添加了一条 DNAT 规则。该规则将所有目标(DST)为宿主机(0.0.0.0:8080)的流量,转发(DNAT to)到 Nginx 容器在内部网络的 80 端口

    4.3 运行状态检视

    使用 sudo nerdctl ps 查看容器是否按预期运行。

    sudo nerdctl ps

    五、 部署验证与服务访问

    我们从本地和外部两个维度验证 Nginx 服务的可用性。

    5.1 本地环回测试 (Loopback)

    在 openEuler 终端内,使用 curl 访问宿主机映射的 8080 端口。

    curl http://localhost:8080

    六、总结

    从零构建虚拟机、安装 openEuler 24.03 LTS SP2、部署 containerd 运行时,直至运行 Nginx 服务的全过程:

  • 紧沿,生态完善:openEuler 24.03 LTS SP2 作为一个现代化的发行版,其软件源中直接了 containerd 和 nerdctl,免去了复杂的编译和第三方源配置。这体现了 openEuler 社区对 K8s 和云原生标准生态的迅速跟进与完美支持。

  • 高度稳定,内核先进:系统(基于 6.x 内核)对 Cgroups v2 和 Namespaces 的支持更加完善,systemd 对 containerd 服务的管理表现得高度稳定,全程无任何报错

  • 流程标准,体验顺畅:整个部署流程遵循 Linux 标准实践(dnf, systemctl),全程使用 sudo 也符合服务器安全规范。nerdctl 带来的“Docker 兼容”体验,使得迁移和学习成本几乎为零

  • 云原生基石稳固:此次评测成功验证了 openEuler 24.03 LTS 具备了作为“K8s 底座”的全部关键能力:可靠的内核、标准的容器运行时(CRI)、稳健的网络(CNI)能力。这为后续部署 K8s 集群、Service Mesh 甚至 AI(如 Kubeflow)等复杂云原生组件奠定了最坚实的基础

  • openEuler 24.03 LTS SP2 展现了其作为数字基础设施操作系统的专业性、先进性与可靠性

    在这里插入图片描述

    分享一下 openEuler 相关产品官方信息:​ 1.产品地址:https://www.openeuler.org/​ 2.评测地址:https://www.openeuler.org/​ 3.产品使用说明:https://docs.openeuler.openatom.cn/zh/

    赞(0)
    未经允许不得转载:171主机测评 » 云原生基石的试金石:基于 openEuler 部署 Docker 与 Nginx 的全景实录
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址