Docker 与虚拟机与 NAS

Docker 与虚拟机与 NAS 日期:2026-07-28 前文:2026_0728_01_云服务器初始配置与SSH密钥认证 一、三者分别是什么 Docker(容器引擎) Docker 是一个应用打包和运行平台。它把应用及其所有依赖(代码、运行时、系统库、配置)打包成一个"镜像",这个镜像可以在任何安装了 Docker 的机器上原样运行。 核心思想:一次打包,到处运行。 开发环境跑得通 → 测试环境跑得通 → 生产环境跑得通。 因为这三个环境用的是同一个镜像,不存在"我机器上没问题啊"。 核心概念 是什么 类比 镜像(Image) 应用的只读模板,包含运行应用所需的一切 蛋糕模具 容器(Container) 镜像的运行实例,有自己的文件系统、进程空间、网络 用模具做出的蛋糕 仓库(Registry) 存放和分发镜像的地方(Docker Hub / 私有仓库) 模具商店 虚拟机(Virtual Machine) 虚拟机是通过Hypervisor(虚拟机管理器)在物理硬件上模拟出一台完整的虚拟计算机。每台 VM 有自己的虚拟 CPU、内存、硬盘、网卡,以及独立的操作系统内核。 常见的 Hypervisor: VMware Workstation / VirtualBox — 装在 Windows/macOS 上,你本地跑靶机用的 KVM — Linux 内核内置,云厂商(腾讯云/阿里云/AWS)底层用的就是这个 NAS(Network Attached Storage,网络附加存储) NAS 是一台专门用来存文件的设备,通过网线连在你的路由器上,局域网内所有设备都能访问它。本质上就是一台插了很多硬盘的小型服务器,只不过操作系统被简化成了文件管理专用。 常见形态: 品牌成品:群晖(Synology)/ 威联通(QNAP)——买来即用,贵但省心 自建 DIY:旧电脑 / 树莓派 + 多块硬盘 + TrueNAS / Unraid 系统——便宜但折腾 注意:NAS 和 Docker/虚拟机不在同一个维度上比较。NAS 是一个硬件设备 / 文件服务,Docker 和虚拟机是虚拟化技术。你可以在 NAS 上跑 Docker,也可以在 NAS 上跑虚拟机——它们可以组合使用。 ...

July 28, 2026 · 3 min · 530 words

云服务器初始配置与 SSH 密钥认证

云服务器初始配置与 SSH 密钥认证 日期:2026-07-28 服务器:腾讯云轻量应用服务器 2核2G3M 40GB SSD(Ubuntu 22.04 LTS) 一、服务器上的三个用户 云服务器上有三个用户,他们各自的身份和角色完全不同: 用户名 UID 本质 能否直接登录 用途 root 0 Linux 超级管理员,拥有最高权限,可以做任何事情(包括删掉整个系统) ❌ 默认禁止远程登录(PermitRootLogin no) 系统底层操作,日常不使用 ubuntu 1000 腾讯云 Ubuntu 镜像默认创建的普通用户,自带 sudo 权限 ✅ 云服务商给你的初始入口,配置好之后作为备用账户 renbudang 1001 你自己创建的普通用户,也已经赋予 sudo 权限 ✅(主账户) 从今以后你日常登录和操作的账户 为什么有三个用户? root → Linux 系统内置的超级管理员。 Ubuntu 默认禁用了它的远程登录,这是安全设计—— root 权限太大,一旦被入侵后果不可控。 日常工作不应该用 root,仅在必要时通过 sudo 提权。 ubuntu → 云服务商(腾讯云)在创建 Ubuntu 虚拟机时自动生成的。 它在你拿到服务器之前就存在了。 它是一个有 sudo 权限的普通用户,是你拿到服务器后第一个能登录的人。 配置完成后保留它作为"紧急备用入口"—— 万一你把 renbudang 的 sudo 权限弄坏了,还能用它救回来。 renbudang → 你给自己创建的日常用户。 sudo usermod -aG sudo renbudang 给了它管理员权限。 从今以后这就是"你"在服务器上的身份。 核心认知 ubuntu 不是 root,它只是一个能用 sudo 提权的普通用户(UID=1000) root 的 UID 永远是 0,这是 Linux 内核判断"是不是 root"的唯一依据 日常操作用 renbudang + sudo,不要直接以 root 身份操作 二、我们在这台服务器上做了什么 操作时间线 1. 购买创建 → 选 Ubuntu 22.04 LTS 系统镜像(纯操作系统,不装任何预装软件) → 设了 renbudang 用户和密码 → 服务器启动,获得公网 IP 2. 首次连接 → 在 Windows PowerShell 里用 ssh renbudang@公网IP 测试连接 → 初始使用密码登录 3. 生成 SSH 密钥对 → 在本地 Windows 上执行 ssh-keygen -t ed25519 → 生成了一对密钥:私钥(id_ed25519)和公钥(id_ed25519.pub) 4. 上传公钥到服务器 → 将公钥内容追加写入服务器的 ~/.ssh/authorized_keys → 服务器从此认这把私钥 5. 配置 SSH 安全加固 → 禁止 root 远程登录 → 禁止密码登录(只用密钥) → 后续连接无需输密码 三、SSH 密钥认证原理(公钥与私钥) 我的问题 “密钥公钥什么的我还是不明白,你是用 Windows 的工具创建了一个密钥,然后上传到云服务器里和用户 renbudang 绑定了吗?” ...

July 28, 2026 · 3 min · 501 words