<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://md5.pw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=James</id>
	<title>md5.pw - 用户贡献 [zh]</title>
	<link rel="self" type="application/atom+xml" href="https://md5.pw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=James"/>
	<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=Special:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/James"/>
	<updated>2026-05-19T08:19:25Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://md5.pw/index.php?title=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E9%80%89%E6%8B%A9%E6%8C%87%E5%8D%97%EF%BC%88Ubuntu/Debian/CentOS%EF%BC%9A%E4%BD%BF%E7%94%A8%E6%A1%88%E4%BE%8B%E5%8F%8A%E6%8E%A8%E8%8D%90%EF%BC%89&amp;diff=1648</id>
		<title>操作系统选择指南（Ubuntu/Debian/CentOS：使用案例及推荐）</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E9%80%89%E6%8B%A9%E6%8C%87%E5%8D%97%EF%BC%88Ubuntu/Debian/CentOS%EF%BC%9A%E4%BD%BF%E7%94%A8%E6%A1%88%E4%BE%8B%E5%8F%8A%E6%8E%A8%E8%8D%90%EF%BC%89&amp;diff=1648"/>
		<updated>2026-03-18T13:40:39Z</updated>

		<summary type="html">&lt;p&gt;James：​操作系统选择指南（Ubuntu/Debian/CentOS：使用案例及推荐）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;如果你在搬瓦工服务器的KiwiVM面板中尝试过重装 VPS 系统的话，你就知道在重装列表里密密麻麻地排布着 Ubuntu 22.04、Debian 12、CentOS 7、AlmaLinux 9……等等很多的不同系统可以供你选择进行重装。对于刚刚接触 Linux 和服务器世界的新手来说，这就像是站在一个完全陌生的十字路口。选错了会不会导致后面的教程都用不了？哪个系统运行起来最省内存？哪个系统最安全？&lt;br /&gt;
&lt;br /&gt;
这篇内容将为您提供一份详尽、客观且极具实操指导意义的 VPS 操作系统选择指南。我们将深入剖析目前服务器领域最主流的三大阵营（Ubuntu、Debian、CentOS 及其继任者），并通过真实的使用场景帮你对号入座，彻底解决“选择困难症”。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 一、 核心概念：什么是 Linux 发行版？ ==&lt;br /&gt;
在对比具体的系统之前，我们需要厘清一个基础概念。&lt;br /&gt;
&lt;br /&gt;
我们常说的 Linux，严格意义上是指 &#039;&#039;&#039;Linux 内核 (Kernel)&#039;&#039;&#039;。内核就像是汽车的发动机，负责管理 CPU、内存、硬盘等底层硬件。但是，普通用户是无法直接驾驶一台只有发动机的汽车的。&lt;br /&gt;
&lt;br /&gt;
因此，不同的开源社区和商业公司，在 Linux 内核的基础之上，加上了各种各样的应用软件、桌面环境（VPS 通常不需要）、包管理器（用来安装和卸载软件的工具），最终打包成了一个可以直接安装使用的完整系统。这就是 &#039;&#039;&#039;Linux 发行版 (Distribution，简称 Distro)&#039;&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
虽然它们都叫 Linux，底层原理相通，但在软件安装命令、默认配置文件路径、更新策略上有着明显的家族差异。目前 VPS 市场上，占据统治地位的主要是两大流派：&#039;&#039;&#039;Debian 系&#039;&#039;&#039;（包含 Debian 和 Ubuntu）与 &#039;&#039;&#039;Red Hat 系&#039;&#039;&#039;（俗称小红帽，其中包含 CentOS、AlmaLinux、Rocky Linux）。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 二、 三大主流操作系统全景剖析 ==&lt;br /&gt;
&lt;br /&gt;
== 1. Ubuntu： ==&lt;br /&gt;
Ubuntu 是基于 Debian 发展而来的衍生版本，由 Canonical 公司提供商业支持。它的口号是“Linux for Human Beings”（为人类打造的 Linux），是目前互联网上受众最广、教程最多的服务器操作系统。&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;包管理器：&#039;&#039;&#039;&amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;发布周期：&#039;&#039;&#039; 每两年发布一个 LTS（长期支持版，如 20.04、22.04、24.04），提供长达 5 年的免费安全更新。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;核心优势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;绝对的新手友好：&#039;&#039;&#039; 如果你在搭建服务时遇到了极其罕见的报错，把报错代码复制到搜索引擎，前十个搜索结果里至少有八个是基于 Ubuntu 给出的解决方案。&lt;br /&gt;
* &#039;&#039;&#039;软件库极其丰富：&#039;&#039;&#039; 拥有庞大的 PPA（个人软件包档案），你可以非常轻松地安装各种最新版本的软件。&lt;br /&gt;
* &#039;&#039;&#039;极佳的生态兼容性：&#039;&#039;&#039; 绝大多数现代开源项目（尤其是各种 Docker 容器化面板、网络探针、自动化部署工具）的官方文档，都是首选 Ubuntu 作为演示环境的。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;相对劣势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;资源占用稍高：&#039;&#039;&#039; 相比于极其精简的纯净版系统，Ubuntu 预装了一些额外的系统服务（如 Snap 守护进程），在只有 512MB 或 1GB 内存的极低配 VPS 上，可能会显得稍显臃肿。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;版本选择建议：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
毫不犹豫地选择 Ubuntu 22.04 LTS（目前最均衡、教程适配度最高的主力版本）或 Ubuntu 24.04 LTS（最新长期支持版）。坚决避开带有 “.10” 或 “.04” 但不是 LTS 的短期过渡版本。&lt;br /&gt;
&lt;br /&gt;
== 2. Debian： ==&lt;br /&gt;
Debian 是现存最古老、最庞大、也是最纯粹的开源 Linux 发行版之一。它完全由社区驱动，没有商业公司在背后干预。如果说 Ubuntu 是一辆配置丰富的家用车，那 Debian 就是一辆没有多余内饰的硬派越野车。&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;包管理器：&#039;&#039;&#039;&amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt;（与 Ubuntu 完全一致）&lt;br /&gt;
* &#039;&#039;&#039;发布周期：&#039;&#039;&#039; 大约每两年发布一个大版本（如 Debian 11 &amp;quot;Bullseye&amp;quot;, Debian 12 &amp;quot;Bookworm&amp;quot;）。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;核心优势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;极致的稳定性：&#039;&#039;&#039; Debian 对软件包的审查极为严格。一个软件必须经过漫长的测试，被证明绝对稳定且没有严重 Bug 后，才会被纳入正式的稳定版仓库。很多服务器一旦配置好 Debian，可以连续运行数年而无需重启。&lt;br /&gt;
* &#039;&#039;&#039;极低的资源消耗：&#039;&#039;&#039; 纯净安装的 Debian 甚至可以在占用不到 100MB 内存的情况下流畅运行。对于内存极为宝贵的小型 VPS 来说，Debian 是压榨硬件性能的终极武器。&lt;br /&gt;
* &#039;&#039;&#039;平滑的版本升级：&#039;&#039;&#039; Debian 的跨版本升级机制非常完善，极少出现因为系统大版本升级导致环境崩溃的情况。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;相对劣势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;软件版本相对保守：&#039;&#039;&#039; 为了追求绝对的稳定，Debian 官方仓库里的软件版本往往不是最新的。如果您必须使用某个软件的最新前沿特性，可能需要手动编译或添加第三方源。&lt;br /&gt;
&lt;br /&gt;
版本选择建议：&lt;br /&gt;
&lt;br /&gt;
优先选择 Debian 12（目前最新的稳定版，内核较新，对现代网络协议支持更好）或 Debian 11。&lt;br /&gt;
&lt;br /&gt;
== 3. CentOS 及其继任者： ==&lt;br /&gt;
CentOS 曾经是服务器领域的绝对霸主。它基于 Red Hat Enterprise Linux (RHEL) 的源代码重新编译而成，旨在提供一个免费的、具有企业级稳定性的系统。&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;包管理器：&#039;&#039;&#039;&amp;lt;code&amp;gt;yum&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
⚠️ &#039;&#039;&#039;时代的眼泪与重大变故：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
必须向新手说明的是，传统的 CentOS 时代已经落幕。官方已宣布停止维护 CentOS 8，并将其转型为 CentOS Stream（一个滚动更新的测试版，不再适合作为求稳的生产环境）。CentOS 7 也于 2024 年年中彻底结束了生命周期。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;继任者（AlmaLinux / Rocky Linux）：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
为了填补 CentOS 留下的空白，社区迅速推出了 AlmaLinux 和 Rocky Linux。它们同样是 RHEL 的 1:1 完美克隆版，完全继承了 CentOS 曾经的生态位。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;核心优势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;企业级基因：&#039;&#039;&#039; 极度注重安全性和规范性。默认开启 SELinux（极高强度的安全模块）和严格的 Firewalld 防火墙。&lt;br /&gt;
* &#039;&#039;&#039;超长生命周期：&#039;&#039;&#039; 每个大版本通常提供长达 10 年的支持周期，非常适合部署以后就不再想去折腾的传统商业项目。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;相对劣势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;学习曲线陡峭：&#039;&#039;&#039; SELinux 和复杂的防火墙规则常常让新手崩溃，导致“为什么我配置都对，但网页就是打不开”的惨剧。&lt;br /&gt;
* &#039;&#039;&#039;现代开源生态脱节：&#039;&#039;&#039; 很多新兴的极客工具、轻量级面板在 Red Hat 系系统上的安装步骤比 Debian 系繁琐得多。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;版本选择建议：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
除非您的公司强制要求或者您需要运行某些特定的老旧商业控制面板（如早期的 cPanel），否则强烈建议新手避开 CentOS 7/8。如果必须使用 Red Hat 系，请选择 AlmaLinux 9 或 Rocky Linux 9。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 三、 硬核对比：快速决策参照表 ==&lt;br /&gt;
为了更直观地展示三者的差异，您可以参考下方的对比表：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!特性对比&lt;br /&gt;
!Ubuntu LTS&lt;br /&gt;
!Debian&lt;br /&gt;
!AlmaLinux/Rocky (CentOS继任)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;底层派系&#039;&#039;&#039;&lt;br /&gt;
|Debian 系&lt;br /&gt;
|Debian 系&lt;br /&gt;
|Red Hat (RHEL) 系&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;包管理器&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;yum&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;资源占用&#039;&#039;&#039;&lt;br /&gt;
|中等偏上&lt;br /&gt;
|&#039;&#039;&#039;极低&#039;&#039;&#039;&lt;br /&gt;
|中等&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;软件新旧程度&#039;&#039;&#039;&lt;br /&gt;
|较新&lt;br /&gt;
|偏保守（极度稳定）&lt;br /&gt;
|保守（企业级稳定）&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;社区教程数量&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;全网最多&#039;&#039;&#039;&lt;br /&gt;
|非常丰富&lt;br /&gt;
|一般（多为传统运维文档）&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;新手友好度&#039;&#039;&#039;&lt;br /&gt;
|⭐⭐⭐⭐⭐&lt;br /&gt;
|⭐⭐⭐⭐&lt;br /&gt;
|⭐⭐&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;企业接受度&#039;&#039;&#039;&lt;br /&gt;
|高&lt;br /&gt;
|中&lt;br /&gt;
|&#039;&#039;&#039;极高&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 四、 场景化推荐：我到底该选谁？ ==&lt;br /&gt;
抛开需求谈选择都是耍流氓。请根据您购买 VPS 的核心目的，对号入座：&lt;br /&gt;
&lt;br /&gt;
== 场景一：我是纯新手，想搭建一个独立博客（如 Halo、WordPress），想跟着网上的教程一步步学。 ==&lt;br /&gt;
🎯 &#039;&#039;&#039;绝对首选：Ubuntu 22.04 LTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;理由：&#039;&#039;&#039; 无论是安装 Nginx、MySQL 还是运行各种一键脚本，网上的博主默认都是在 Ubuntu 下演示的。遇到报错复制到网上一搜，立刻就能找到答案。它能极大地降低你的初始挫败感，保护你对服务器探索的兴趣。&lt;br /&gt;
&lt;br /&gt;
== 场景二：我是重度 Docker 爱好者，准备用这台服务器跑 Uptime Kuma、Nezha 探针、青龙面板等各种容器化应用。 ==&lt;br /&gt;
🎯 &#039;&#039;&#039;强烈推荐：Debian 12 或 Ubuntu 22.04 LTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;理由：&#039;&#039;&#039; Docker 官方对这二者的支持是最好的。如果您有一定基础，希望宿主机系统尽可能纯净、把所有的性能都留给容器，那就选 Debian 12。如果你希望安装 Docker 的过程更“傻瓜”一些，Ubuntu 依然是稳妥的选择。这两种系统在进行端口映射和网络桥接时，表现都极其稳定。&lt;br /&gt;
&lt;br /&gt;
== 场景三：我买了一台特价机，内存只有 512MB 甚至 256MB，硬盘空间也很小。 ==&lt;br /&gt;
🎯 &#039;&#039;&#039;唯一指定：Debian 11 或 Debian 12&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;理由：&#039;&#039;&#039; 在极端贫瘠的硬件环境下，Debian 是唯一的神。它能在开机只占用几十兆内存的情况下稳定运行底层网络协议。如果在这种机器上强行安装 CentOS 或最新版 Ubuntu，系统可能会因为频繁使用 SWAP（虚拟内存）而卡得连 SSH 命令都敲不进去。&lt;br /&gt;
&lt;br /&gt;
== 场景四：我是为了学习企业运维技术，或者准备部署一套极其严肃的商业 ERP 系统，要求未来五年内底层架构绝不变更。 ==&lt;br /&gt;
🎯 &#039;&#039;&#039;对口选择：AlmaLinux 9 或 Rocky Linux 9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;理由：&#039;&#039;&#039; 提前适应企业级的环境管理标准。它们严格的权限隔离机制和长达 10 年的维护周期，是这类场景的刚需。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 五、 初始化对比：体验两者的差异 ==&lt;br /&gt;
为了让你对 Debian 系和 Red Hat 系的差异有更直观的感受，我们来看看在全新的 VPS 上执行“更新系统并安装 wget 下载工具”的命令差异：&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;如果你选择了 Ubuntu 或 Debian (使用 apt)：&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;code&amp;gt;# 更新本地软件源列表&lt;br /&gt;
 apt update&lt;br /&gt;
 &lt;br /&gt;
 # 升级所有已安装的软件，并在遇到询问时自动回复 yes&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
 &lt;br /&gt;
 # 安装 wget 工具&lt;br /&gt;
 apt &#039;&#039;&#039;install&#039;&#039;&#039; wget -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;如果您选择了 AlmaLinux 或 Rocky Linux (使用 dnf/yum)：&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;code&amp;gt;# 检查并更新所有系统软件&lt;br /&gt;
 dnf update -y&lt;br /&gt;
 &lt;br /&gt;
 # 安装 wget 工具&lt;br /&gt;
 dnf &#039;&#039;&#039;install&#039;&#039;&#039; wget -y&amp;lt;/code&amp;gt;&lt;br /&gt;
（注：在新一代 Red Hat 系系统中，&amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt; 已经全面取代了老旧的 &amp;lt;code&amp;gt;yum&amp;lt;/code&amp;gt;，虽然输入 &amp;lt;code&amp;gt;yum&amp;lt;/code&amp;gt; 依然有效，但建议养成使用 &amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt; 的习惯。）&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 结语 ==&lt;br /&gt;
对于 90% 以上的 VPS 新手和独立开发者来说，&#039;&#039;&#039;Ubuntu 22.04 LTS 是永远不会出错的保底选择，而 Debian 12 则是追求极致性能和纯净度的高阶首选。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
操作系统只是承载您灵感和代码的地基。不要在这个环节耗费过多的精力，选定一个主流系统，登入 SSH，敲下您的第一行命令，您的服务器之旅才刚刚开始。&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E9%80%89%E6%8B%A9%E6%8C%87%E5%8D%97%EF%BC%88Ubuntu/Debian/CentOS%EF%BC%9A%E4%BD%BF%E7%94%A8%E6%A1%88%E4%BE%8B%E5%8F%8A%E6%8E%A8%E8%8D%90%EF%BC%89&amp;diff=1647</id>
		<title>操作系统选择指南（Ubuntu/Debian/CentOS：使用案例及推荐）</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E9%80%89%E6%8B%A9%E6%8C%87%E5%8D%97%EF%BC%88Ubuntu/Debian/CentOS%EF%BC%9A%E4%BD%BF%E7%94%A8%E6%A1%88%E4%BE%8B%E5%8F%8A%E6%8E%A8%E8%8D%90%EF%BC%89&amp;diff=1647"/>
		<updated>2026-03-18T13:37:42Z</updated>

		<summary type="html">&lt;p&gt;James：​操作系统选择指南（Ubuntu/Debian/CentOS：使用案例及推荐）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;如果你在搬瓦工服务器的KiwiVM面板中重装过系统的话，你就知道重装列表里密密麻麻地排布着 Ubuntu 22.04、Debian 12、CentOS 7、AlmaLinux 9……对于刚刚接触 Linux 和服务器世界的新手来说，这就像是站在一个完全陌生的十字路口。选错了会不会导致后面的教程都用不了？哪个系统运行起来最省内存？哪个系统最安全？&lt;br /&gt;
&lt;br /&gt;
这篇内容将为您提供一份详尽、客观且极具实操指导意义的 VPS 操作系统选择指南。我们将深入剖析目前服务器领域最主流的三大阵营（Ubuntu、Debian、CentOS 及其继任者），并通过真实的使用场景帮你对号入座，彻底解决“选择困难症”。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 一、 核心概念：什么是 Linux 发行版？ ==&lt;br /&gt;
在对比具体的系统之前，我们需要厘清一个基础概念。&lt;br /&gt;
&lt;br /&gt;
我们常说的 Linux，严格意义上是指 &#039;&#039;&#039;Linux 内核 (Kernel)&#039;&#039;&#039;。内核就像是汽车的发动机，负责管理 CPU、内存、硬盘等底层硬件。但是，普通用户是无法直接驾驶一台只有发动机的汽车的。&lt;br /&gt;
&lt;br /&gt;
因此，不同的开源社区和商业公司，在 Linux 内核的基础之上，加上了各种各样的应用软件、桌面环境（VPS 通常不需要）、包管理器（用来安装和卸载软件的工具），最终打包成了一个可以直接安装使用的完整系统。这就是 &#039;&#039;&#039;Linux 发行版 (Distribution，简称 Distro)&#039;&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
虽然它们都叫 Linux，底层原理相通，但在软件安装命令、默认配置文件路径、更新策略上有着明显的家族差异。目前 VPS 市场上，占据统治地位的主要是两大流派：&#039;&#039;&#039;Debian 系&#039;&#039;&#039;（包含 Debian 和 Ubuntu）与 &#039;&#039;&#039;Red Hat 系&#039;&#039;&#039;（俗称小红帽，其中包含 CentOS、AlmaLinux、Rocky Linux）。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 二、 三大主流操作系统全景剖析 ==&lt;br /&gt;
&lt;br /&gt;
== 1. Ubuntu： ==&lt;br /&gt;
Ubuntu 是基于 Debian 发展而来的衍生版本，由 Canonical 公司提供商业支持。它的口号是“Linux for Human Beings”（为人类打造的 Linux），是目前互联网上受众最广、教程最多的服务器操作系统。&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;包管理器：&#039;&#039;&#039;&amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;发布周期：&#039;&#039;&#039; 每两年发布一个 LTS（长期支持版，如 20.04、22.04、24.04），提供长达 5 年的免费安全更新。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;核心优势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;绝对的新手友好：&#039;&#039;&#039; 如果你在搭建服务时遇到了极其罕见的报错，把报错代码复制到搜索引擎，前十个搜索结果里至少有八个是基于 Ubuntu 给出的解决方案。&lt;br /&gt;
* &#039;&#039;&#039;软件库极其丰富：&#039;&#039;&#039; 拥有庞大的 PPA（个人软件包档案），你可以非常轻松地安装各种最新版本的软件。&lt;br /&gt;
* &#039;&#039;&#039;极佳的生态兼容性：&#039;&#039;&#039; 绝大多数现代开源项目（尤其是各种 Docker 容器化面板、网络探针、自动化部署工具）的官方文档，都是首选 Ubuntu 作为演示环境的。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;相对劣势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;资源占用稍高：&#039;&#039;&#039; 相比于极其精简的纯净版系统，Ubuntu 预装了一些额外的系统服务（如 Snap 守护进程），在只有 512MB 或 1GB 内存的极低配 VPS 上，可能会显得稍显臃肿。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;版本选择建议：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
毫不犹豫地选择 Ubuntu 22.04 LTS（目前最均衡、教程适配度最高的主力版本）或 Ubuntu 24.04 LTS（最新长期支持版）。坚决避开带有 “.10” 或 “.04” 但不是 LTS 的短期过渡版本。&lt;br /&gt;
&lt;br /&gt;
== 2. Debian： ==&lt;br /&gt;
Debian 是现存最古老、最庞大、也是最纯粹的开源 Linux 发行版之一。它完全由社区驱动，没有商业公司在背后干预。如果说 Ubuntu 是一辆配置丰富的家用车，那 Debian 就是一辆没有多余内饰的硬派越野车。&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;包管理器：&#039;&#039;&#039;&amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt;（与 Ubuntu 完全一致）&lt;br /&gt;
* &#039;&#039;&#039;发布周期：&#039;&#039;&#039; 大约每两年发布一个大版本（如 Debian 11 &amp;quot;Bullseye&amp;quot;, Debian 12 &amp;quot;Bookworm&amp;quot;）。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;核心优势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;极致的稳定性：&#039;&#039;&#039; Debian 对软件包的审查极为严格。一个软件必须经过漫长的测试，被证明绝对稳定且没有严重 Bug 后，才会被纳入正式的稳定版仓库。很多服务器一旦配置好 Debian，可以连续运行数年而无需重启。&lt;br /&gt;
* &#039;&#039;&#039;极低的资源消耗：&#039;&#039;&#039; 纯净安装的 Debian 甚至可以在占用不到 100MB 内存的情况下流畅运行。对于内存极为宝贵的小型 VPS 来说，Debian 是压榨硬件性能的终极武器。&lt;br /&gt;
* &#039;&#039;&#039;平滑的版本升级：&#039;&#039;&#039; Debian 的跨版本升级机制非常完善，极少出现因为系统大版本升级导致环境崩溃的情况。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;相对劣势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;软件版本相对保守：&#039;&#039;&#039; 为了追求绝对的稳定，Debian 官方仓库里的软件版本往往不是最新的。如果您必须使用某个软件的最新前沿特性，可能需要手动编译或添加第三方源。&lt;br /&gt;
&lt;br /&gt;
版本选择建议：&lt;br /&gt;
&lt;br /&gt;
优先选择 Debian 12（目前最新的稳定版，内核较新，对现代网络协议支持更好）或 Debian 11。&lt;br /&gt;
&lt;br /&gt;
== 3. CentOS 及其继任者： ==&lt;br /&gt;
CentOS 曾经是服务器领域的绝对霸主。它基于 Red Hat Enterprise Linux (RHEL) 的源代码重新编译而成，旨在提供一个免费的、具有企业级稳定性的系统。&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;包管理器：&#039;&#039;&#039;&amp;lt;code&amp;gt;yum&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
⚠️ &#039;&#039;&#039;时代的眼泪与重大变故：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
必须向新手说明的是，传统的 CentOS 时代已经落幕。官方已宣布停止维护 CentOS 8，并将其转型为 CentOS Stream（一个滚动更新的测试版，不再适合作为求稳的生产环境）。CentOS 7 也于 2024 年年中彻底结束了生命周期。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;继任者（AlmaLinux / Rocky Linux）：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
为了填补 CentOS 留下的空白，社区迅速推出了 AlmaLinux 和 Rocky Linux。它们同样是 RHEL 的 1:1 完美克隆版，完全继承了 CentOS 曾经的生态位。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;核心优势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;企业级基因：&#039;&#039;&#039; 极度注重安全性和规范性。默认开启 SELinux（极高强度的安全模块）和严格的 Firewalld 防火墙。&lt;br /&gt;
* &#039;&#039;&#039;超长生命周期：&#039;&#039;&#039; 每个大版本通常提供长达 10 年的支持周期，非常适合部署以后就不再想去折腾的传统商业项目。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;相对劣势：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;学习曲线陡峭：&#039;&#039;&#039; SELinux 和复杂的防火墙规则常常让新手崩溃，导致“为什么我配置都对，但网页就是打不开”的惨剧。&lt;br /&gt;
* &#039;&#039;&#039;现代开源生态脱节：&#039;&#039;&#039; 很多新兴的极客工具、轻量级面板在 Red Hat 系系统上的安装步骤比 Debian 系繁琐得多。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;版本选择建议：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
除非您的公司强制要求或者您需要运行某些特定的老旧商业控制面板（如早期的 cPanel），否则强烈建议新手避开 CentOS 7/8。如果必须使用 Red Hat 系，请选择 AlmaLinux 9 或 Rocky Linux 9。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 三、 硬核对比：快速决策参照表 ==&lt;br /&gt;
为了更直观地展示三者的差异，您可以参考下方的对比表：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!特性对比&lt;br /&gt;
!Ubuntu LTS&lt;br /&gt;
!Debian&lt;br /&gt;
!AlmaLinux/Rocky (CentOS继任)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;底层派系&#039;&#039;&#039;&lt;br /&gt;
|Debian 系&lt;br /&gt;
|Debian 系&lt;br /&gt;
|Red Hat (RHEL) 系&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;包管理器&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;yum&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;资源占用&#039;&#039;&#039;&lt;br /&gt;
|中等偏上&lt;br /&gt;
|&#039;&#039;&#039;极低&#039;&#039;&#039;&lt;br /&gt;
|中等&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;软件新旧程度&#039;&#039;&#039;&lt;br /&gt;
|较新&lt;br /&gt;
|偏保守（极度稳定）&lt;br /&gt;
|保守（企业级稳定）&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;社区教程数量&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;全网最多&#039;&#039;&#039;&lt;br /&gt;
|非常丰富&lt;br /&gt;
|一般（多为传统运维文档）&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;新手友好度&#039;&#039;&#039;&lt;br /&gt;
|⭐⭐⭐⭐⭐&lt;br /&gt;
|⭐⭐⭐⭐&lt;br /&gt;
|⭐⭐&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;企业接受度&#039;&#039;&#039;&lt;br /&gt;
|高&lt;br /&gt;
|中&lt;br /&gt;
|&#039;&#039;&#039;极高&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 四、 场景化推荐：我到底该选谁？ ==&lt;br /&gt;
抛开需求谈选择都是耍流氓。请根据您购买 VPS 的核心目的，对号入座：&lt;br /&gt;
&lt;br /&gt;
== 场景一：我是纯新手，想搭建一个独立博客（如 Halo、WordPress），想跟着网上的教程一步步学。 ==&lt;br /&gt;
🎯 &#039;&#039;&#039;绝对首选：Ubuntu 22.04 LTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;理由：&#039;&#039;&#039; 无论是安装 Nginx、MySQL 还是运行各种一键脚本，网上的博主默认都是在 Ubuntu 下演示的。遇到报错复制到网上一搜，立刻就能找到答案。它能极大地降低你的初始挫败感，保护你对服务器探索的兴趣。&lt;br /&gt;
&lt;br /&gt;
== 场景二：我是重度 Docker 爱好者，准备用这台服务器跑 Uptime Kuma、Nezha 探针、青龙面板等各种容器化应用。 ==&lt;br /&gt;
🎯 &#039;&#039;&#039;强烈推荐：Debian 12 或 Ubuntu 22.04 LTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;理由：&#039;&#039;&#039; Docker 官方对这二者的支持是最好的。如果您有一定基础，希望宿主机系统尽可能纯净、把所有的性能都留给容器，那就选 Debian 12。如果你希望安装 Docker 的过程更“傻瓜”一些，Ubuntu 依然是稳妥的选择。这两种系统在进行端口映射和网络桥接时，表现都极其稳定。&lt;br /&gt;
&lt;br /&gt;
== 场景三：我买了一台特价机，内存只有 512MB 甚至 256MB，硬盘空间也很小。 ==&lt;br /&gt;
🎯 &#039;&#039;&#039;唯一指定：Debian 11 或 Debian 12&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;理由：&#039;&#039;&#039; 在极端贫瘠的硬件环境下，Debian 是唯一的神。它能在开机只占用几十兆内存的情况下稳定运行底层网络协议。如果在这种机器上强行安装 CentOS 或最新版 Ubuntu，系统可能会因为频繁使用 SWAP（虚拟内存）而卡得连 SSH 命令都敲不进去。&lt;br /&gt;
&lt;br /&gt;
== 场景四：我是为了学习企业运维技术，或者准备部署一套极其严肃的商业 ERP 系统，要求未来五年内底层架构绝不变更。 ==&lt;br /&gt;
🎯 &#039;&#039;&#039;对口选择：AlmaLinux 9 或 Rocky Linux 9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;理由：&#039;&#039;&#039; 提前适应企业级的环境管理标准。它们严格的权限隔离机制和长达 10 年的维护周期，是这类场景的刚需。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 五、 初始化对比：体验两者的差异 ==&lt;br /&gt;
为了让你对 Debian 系和 Red Hat 系的差异有更直观的感受，我们来看看在全新的 VPS 上执行“更新系统并安装 wget 下载工具”的命令差异：&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;如果你选择了 Ubuntu 或 Debian (使用 apt)：&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;code&amp;gt;# 更新本地软件源列表&lt;br /&gt;
 apt update&lt;br /&gt;
 &lt;br /&gt;
 # 升级所有已安装的软件，并在遇到询问时自动回复 yes&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
 &lt;br /&gt;
 # 安装 wget 工具&lt;br /&gt;
 apt &#039;&#039;&#039;install&#039;&#039;&#039; wget -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;如果您选择了 AlmaLinux 或 Rocky Linux (使用 dnf/yum)：&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;code&amp;gt;# 检查并更新所有系统软件&lt;br /&gt;
 dnf update -y&lt;br /&gt;
 &lt;br /&gt;
 # 安装 wget 工具&lt;br /&gt;
 dnf &#039;&#039;&#039;install&#039;&#039;&#039; wget -y&amp;lt;/code&amp;gt;&lt;br /&gt;
（注：在新一代 Red Hat 系系统中，&amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt; 已经全面取代了老旧的 &amp;lt;code&amp;gt;yum&amp;lt;/code&amp;gt;，虽然输入 &amp;lt;code&amp;gt;yum&amp;lt;/code&amp;gt; 依然有效，但建议养成使用 &amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt; 的习惯。）&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 结语 ==&lt;br /&gt;
对于 90% 以上的 VPS 新手和独立开发者来说，&#039;&#039;&#039;Ubuntu 22.04 LTS 是永远不会出错的保底选择，而 Debian 12 则是追求极致性能和纯净度的高阶首选。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
操作系统只是承载您灵感和代码的地基。不要在这个环节耗费过多的精力，选定一个主流系统，登入 SSH，敲下您的第一行命令，您的服务器之旅才刚刚开始。&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E6%8A%8A_Docker_%E5%AE%B9%E5%99%A8%E4%BB%8E%E6%97%A7%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%81%E7%A7%BB%E6%8E%89%E6%96%B0%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A&amp;diff=1405</id>
		<title>把 Docker 容器从旧的服务器迁移掉新的服务器上</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E6%8A%8A_Docker_%E5%AE%B9%E5%99%A8%E4%BB%8E%E6%97%A7%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%81%E7%A7%BB%E6%8E%89%E6%96%B0%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A&amp;diff=1405"/>
		<updated>2026-02-16T07:52:06Z</updated>

		<summary type="html">&lt;p&gt;James：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
每逢“黑色星期五”或商家大促，很多人都会入手线路更好、配置更高的 VPS。但随之而来的头痛问题就是：如何把旧服务器上跑得好好的 Docker 服务，原封不动地搬到新机器上？&lt;br /&gt;
&lt;br /&gt;
如果只是重新 &amp;lt;code&amp;gt;docker run&amp;lt;/code&amp;gt; 一遍，原本积累的数据库、网站文章、配置信息都会丢失。&lt;br /&gt;
&lt;br /&gt;
这篇教程将提供一套&#039;&#039;&#039;“生产环境级”&#039;&#039;&#039;的迁移方案，利用 &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; 工具，连同镜像、配置文件和持久化数据（Database/Data）一起“进行迁移，确保新机器启动后，和旧机器一模一样。&lt;br /&gt;
&lt;br /&gt;
== 迁移前的准备 ==&lt;br /&gt;
&lt;br /&gt;
* 旧 VPS (Source)：拥有 root 权限，Docker 服务正在运行。&lt;br /&gt;
* 新 VPS (Target)：拥有 root 权限，建议预先安装好 Docker 和 Docker Compose。&lt;br /&gt;
* SSH 连接：确保旧 VPS 可以通过 SSH 连接到新 VPS。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 核心思路：为什么不推荐“导出镜像”？ ==&lt;br /&gt;
新手常见的误区是使用 &amp;lt;code&amp;gt;docker export&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;docker save&amp;lt;/code&amp;gt;。这些命令只能迁移容器的运行环境（镜像），而无法迁移 &#039;&#039;&#039;卷（Volumes）&#039;&#039;&#039;里的数据。&lt;br /&gt;
&lt;br /&gt;
最稳妥的迁移方式是：基于文件目录的同步。&lt;br /&gt;
&lt;br /&gt;
只要你的 Docker 项目是规范的（即使用 &amp;lt;code&amp;gt;docker-compose.yaml&amp;lt;/code&amp;gt; + 挂载本地目录 &amp;lt;code&amp;gt;./data&amp;lt;/code&amp;gt;），我们只需要把整个项目文件夹同步过去，然后在能在新机器上一键复活。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第一步：在新 VPS 上安装 Docker 环境 ==&lt;br /&gt;
在开始迁移数据前，要先对服务器系统组件进行更新。请在新 VPS 上安装 Docker 环境。（如果已安装可跳过）&lt;br /&gt;
 # 1. 更新系统&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
 &lt;br /&gt;
 # 2. 一键安装 Docker (官方脚本)&lt;br /&gt;
 curl -fsSL &amp;lt;nowiki&amp;gt;https://get.docker.com&amp;lt;/nowiki&amp;gt; | bash&lt;br /&gt;
 &lt;br /&gt;
 # 3. 启动并开机自启&lt;br /&gt;
 systemctl start docker&lt;br /&gt;
 systemctl enable docker&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第二步：在旧 VPS 上停止服务 ==&lt;br /&gt;
这是最重要的一步。 如果你在数据库（MySQL, Redis, PostgreSQL）运行时强行复制代码文件，极大概率会导致数据损坏。&lt;br /&gt;
&lt;br /&gt;
请进入你的 Docker 项目目录，停止容器。&lt;br /&gt;
 # 进入你的项目目录，例如 /opt/stacks/wordpress&lt;br /&gt;
 cd /opt/stacks/wordpress&lt;br /&gt;
 &lt;br /&gt;
 # 停止容器&lt;br /&gt;
 docker compose down&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;注意：如果你有多个项目，建议逐个停止，或者确保所有涉及数据库写入的容器都已停止运行。&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第三步：使用 Rsync 同步数据 ==&lt;br /&gt;
我们将使用 Linux 下最强大的同步工具 &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;。它比 &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; 更快，且能保留文件的权限、软链接和时间戳，这对于数据库文件至关重要。&lt;br /&gt;
&lt;br /&gt;
=== 1. 确保双方都安装了 rsync ===&lt;br /&gt;
在两台机器上都执行：&lt;br /&gt;
 # Debian/Ubuntu&lt;br /&gt;
 apt &#039;&#039;&#039;install&#039;&#039;&#039; -y rsync&lt;br /&gt;
 &lt;br /&gt;
 # CentOS&lt;br /&gt;
 yum &#039;&#039;&#039;install&#039;&#039;&#039; -y rsync&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. 执行同步命令 ===&lt;br /&gt;
假设你的 Docker 项目都存放在 &amp;lt;code&amp;gt;/opt/stacks&amp;lt;/code&amp;gt; 目录下，我们要把这个目录完整同步到新机器的相同位置。&lt;br /&gt;
&lt;br /&gt;
在旧 VPS 上执行以下命令：&lt;br /&gt;
 # 格式：rsync [选项] [源目录] [目标用户@目标IP:目标路径]&lt;br /&gt;
 # 注意：/opt/stacks/ 最后的斜杠表示同步目录下的内容，不加斜杠表示同步目录本身&lt;br /&gt;
 &lt;br /&gt;
 rsync -avzP /opt/stacks/ root@192.168.1.100:/opt/stacks/&amp;lt;/code&amp;gt;&lt;br /&gt;
参数详解：&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; (Archive)：归档模式，保留所有权限、用户组、时间戳（数据迁移必备）。&lt;br /&gt;
* &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; (Verbose)：显示详细过程。&lt;br /&gt;
* &amp;lt;code&amp;gt;-z&amp;lt;/code&amp;gt; (Compress)：传输时压缩，节省带宽。&lt;br /&gt;
* &amp;lt;code&amp;gt;-P&amp;lt;/code&amp;gt; (Progress)：显示传输进度条，断点续传。&lt;br /&gt;
&lt;br /&gt;
输入新 VPS 的 root 密码后，等待传输完成。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第四步：迁移 Docker 镜像（可选） ==&lt;br /&gt;
如果你的镜像都是公开的（如 &amp;lt;code&amp;gt;nginx:latest&amp;lt;/code&amp;gt;），这一步可以跳过，因为在新机器启动时会自动下载。&lt;br /&gt;
&lt;br /&gt;
但如果你有自己构建的私有镜像（没有上传到 Docker Hub），或者旧机器网速慢不想重新下载，可以将镜像打包迁移。&lt;br /&gt;
&lt;br /&gt;
1. 在旧 VPS 打包镜像：&lt;br /&gt;
 # 将镜像保存为 tar 文件&lt;br /&gt;
 docker &#039;&#039;&#039;save&#039;&#039;&#039; -o my_custom_image.tar my_project:v1&amp;lt;/code&amp;gt;&lt;br /&gt;
2. 传输文件：&lt;br /&gt;
 rsync -avzP my_custom_image.tar root@192.168.1.100:/root/&amp;lt;/code&amp;gt;&lt;br /&gt;
3. 在新 VPS 加载镜像：&lt;br /&gt;
 docker load -&#039;&#039;&#039;i&#039;&#039;&#039; /root/my_custom_image.tar&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第五步：在新 VPS 上启动服务 ==&lt;br /&gt;
数据传完了，现在去新的服务器上把这些Docker启动起来。&lt;br /&gt;
&lt;br /&gt;
# SSH 登录到新 VPS。&lt;br /&gt;
# 进入项目目录。&lt;br /&gt;
&lt;br /&gt;
 cd /opt/stacks/wordpress&lt;br /&gt;
 &lt;br /&gt;
 # 检查文件是否都在&lt;br /&gt;
 ls -al&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# 启动服务。&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;docker compose up -d&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# 检查运行状态。&lt;br /&gt;
&lt;br /&gt;
 # 查看容器状态&lt;br /&gt;
 docker compose ps&lt;br /&gt;
 &lt;br /&gt;
 # 查看日志，确保没有报错&lt;br /&gt;
 docker compose logs -f&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第六步：最后（DNS 解析） ==&lt;br /&gt;
如果你的服务绑定了域名（例如 &amp;lt;code&amp;gt;blog.example.com&amp;lt;/code&amp;gt;），迁移完成后，别忘了去你的域名服务商（Cloudflare, Namesilo 等）那里：&lt;br /&gt;
&lt;br /&gt;
# 修改 A 记录：将 IP 地址修改为新 VPS 的 IP。&lt;br /&gt;
# 等待生效：通常几分钟内生效。&lt;br /&gt;
&lt;br /&gt;
=== 常见问题排查 ===&lt;br /&gt;
Q: 启动后提示 &amp;lt;code&amp;gt;Permission denied&amp;lt;/code&amp;gt;？ A: 这通常是因为 rsync 没有加 &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; 参数，导致文件所有者变了（比如数据库文件需要特定用户权限）。 &#039;&#039;解决方法&#039;&#039;：在项目目录下查看原本数据库容器要求的权限，或者直接暴力修复（不推荐生产环境）：&amp;lt;code&amp;gt;chmod -R 777 ./data&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
Q: 新机器的网络不通？ A: 检查新 VPS 的防火墙（UFW/IPTables）是否放行了 Docker 映射的端口（如 80, 443, 8080）。&lt;br /&gt;
 # 放行常用端口示例&lt;br /&gt;
 &#039;&#039;&#039;ufw&#039;&#039;&#039; allow 80/tcp&lt;br /&gt;
 &#039;&#039;&#039;ufw&#039;&#039;&#039; allow 443/tcp&lt;br /&gt;
 &#039;&#039;&#039;ufw&#039;&#039;&#039; reload&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E6%8A%8A_Docker_%E5%AE%B9%E5%99%A8%E4%BB%8E%E6%97%A7%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%81%E7%A7%BB%E6%8E%89%E6%96%B0%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A&amp;diff=1404</id>
		<title>把 Docker 容器从旧的服务器迁移掉新的服务器上</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E6%8A%8A_Docker_%E5%AE%B9%E5%99%A8%E4%BB%8E%E6%97%A7%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%81%E7%A7%BB%E6%8E%89%E6%96%B0%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A&amp;diff=1404"/>
		<updated>2026-02-16T06:49:51Z</updated>

		<summary type="html">&lt;p&gt;James：​把 Docker 容器从旧的服务器迁移掉新的服务器上&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
每逢“黑色星期五”或商家大促，很多人都会入手线路更好、配置更高的 VPS。但随之而来的头痛问题就是：如何把旧服务器上跑得好好的 Docker 服务，原封不动地搬到新机器上？&lt;br /&gt;
&lt;br /&gt;
如果只是重新 &amp;lt;code&amp;gt;docker run&amp;lt;/code&amp;gt; 一遍，原本积累的数据库、网站文章、配置信息都会丢失。&lt;br /&gt;
&lt;br /&gt;
这篇教程将提供一套&#039;&#039;&#039;“生产环境级”&#039;&#039;&#039;的迁移方案，利用 &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; 工具，连同镜像、配置文件和持久化数据（Database/Data）一起“搬家”，确保新机器启动后，和旧机器一模一样。&lt;br /&gt;
&lt;br /&gt;
== 迁移前的准备 ==&lt;br /&gt;
&lt;br /&gt;
* 旧 VPS (Source)：拥有 root 权限，Docker 服务正在运行。&lt;br /&gt;
* 新 VPS (Target)：拥有 root 权限，建议预先安装好 Docker 和 Docker Compose。&lt;br /&gt;
* SSH 连接：确保旧 VPS 可以通过 SSH 连接到新 VPS。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 核心思路：为什么不推荐“导出镜像”？ ==&lt;br /&gt;
新手常见的误区是使用 &amp;lt;code&amp;gt;docker export&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;docker save&amp;lt;/code&amp;gt;。这些命令只能迁移容器的运行环境（镜像），而无法迁移 &#039;&#039;&#039;卷（Volumes）&#039;&#039;&#039;里的数据。&lt;br /&gt;
&lt;br /&gt;
最稳妥的迁移方式是：基于文件目录的同步。&lt;br /&gt;
&lt;br /&gt;
只要你的 Docker 项目是规范的（即使用 &amp;lt;code&amp;gt;docker-compose.yaml&amp;lt;/code&amp;gt; + 挂载本地目录 &amp;lt;code&amp;gt;./data&amp;lt;/code&amp;gt;），我们只需要把整个项目文件夹同步过去，然后在能在新机器上一键复活。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第一步：在新 VPS 上安装 Docker 环境 ==&lt;br /&gt;
在开始迁移数据前，新房子得先装修好。请在新 VPS 上安装 Docker 环境。（如果已安装可跳过）&lt;br /&gt;
 # 1. 更新系统&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
 &lt;br /&gt;
 # 2. 一键安装 Docker (官方脚本)&lt;br /&gt;
 curl -fsSL &amp;lt;nowiki&amp;gt;https://get.docker.com&amp;lt;/nowiki&amp;gt; | bash&lt;br /&gt;
 &lt;br /&gt;
 # 3. 启动并开机自启&lt;br /&gt;
 systemctl start docker&lt;br /&gt;
 systemctl enable docker&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第二步：在旧 VPS 上停止服务 ==&lt;br /&gt;
这是最重要的一步。 如果你在数据库（MySQL, Redis, PostgreSQL）运行时强行复制代码文件，极大概率会导致数据损坏。&lt;br /&gt;
&lt;br /&gt;
请进入你的 Docker 项目目录，停止容器。&lt;br /&gt;
 # 进入你的项目目录，例如 /opt/stacks/wordpress&lt;br /&gt;
 cd /opt/stacks/wordpress&lt;br /&gt;
 &lt;br /&gt;
 # 停止容器&lt;br /&gt;
 docker compose down&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;注意：如果你有多个项目，建议逐个停止，或者确保所有涉及数据库写入的容器都已停止运行。&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第三步：使用 Rsync 同步数据 ==&lt;br /&gt;
我们将使用 Linux 下最强大的同步工具 &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;。它比 &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; 更快，且能保留文件的权限、软链接和时间戳，这对于数据库文件至关重要。&lt;br /&gt;
&lt;br /&gt;
=== 1. 确保双方都安装了 rsync ===&lt;br /&gt;
在两台机器上都执行：&lt;br /&gt;
 # Debian/Ubuntu&lt;br /&gt;
 apt &#039;&#039;&#039;install&#039;&#039;&#039; -y rsync&lt;br /&gt;
 &lt;br /&gt;
 # CentOS&lt;br /&gt;
 yum &#039;&#039;&#039;install&#039;&#039;&#039; -y rsync&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. 执行同步命令 ===&lt;br /&gt;
假设你的 Docker 项目都存放在 &amp;lt;code&amp;gt;/opt/stacks&amp;lt;/code&amp;gt; 目录下，我们要把这个目录完整同步到新机器的相同位置。&lt;br /&gt;
&lt;br /&gt;
在旧 VPS 上执行以下命令：&lt;br /&gt;
 # 格式：rsync [选项] [源目录] [目标用户@目标IP:目标路径]&lt;br /&gt;
 # 注意：/opt/stacks/ 最后的斜杠表示同步目录下的内容，不加斜杠表示同步目录本身&lt;br /&gt;
 &lt;br /&gt;
 rsync -avzP /opt/stacks/ root@192.168.1.100:/opt/stacks/&amp;lt;/code&amp;gt;&lt;br /&gt;
参数详解：&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; (Archive)：归档模式，保留所有权限、用户组、时间戳（数据迁移必备）。&lt;br /&gt;
* &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; (Verbose)：显示详细过程。&lt;br /&gt;
* &amp;lt;code&amp;gt;-z&amp;lt;/code&amp;gt; (Compress)：传输时压缩，节省带宽。&lt;br /&gt;
* &amp;lt;code&amp;gt;-P&amp;lt;/code&amp;gt; (Progress)：显示传输进度条，断点续传。&lt;br /&gt;
&lt;br /&gt;
输入新 VPS 的 root 密码后，等待传输完成。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第四步：迁移 Docker 镜像（可选） ==&lt;br /&gt;
如果你的镜像都是公开的（如 &amp;lt;code&amp;gt;nginx:latest&amp;lt;/code&amp;gt;），这一步可以跳过，因为在新机器启动时会自动下载。&lt;br /&gt;
&lt;br /&gt;
但如果你有自己构建的私有镜像（没有上传到 Docker Hub），或者旧机器网速慢不想重新下载，可以将镜像打包迁移。&lt;br /&gt;
&lt;br /&gt;
1. 在旧 VPS 打包镜像：&lt;br /&gt;
 # 将镜像保存为 tar 文件&lt;br /&gt;
 docker &#039;&#039;&#039;save&#039;&#039;&#039; -o my_custom_image.tar my_project:v1&amp;lt;/code&amp;gt;&lt;br /&gt;
2. 传输文件：&lt;br /&gt;
 rsync -avzP my_custom_image.tar root@192.168.1.100:/root/&amp;lt;/code&amp;gt;&lt;br /&gt;
3. 在新 VPS 加载镜像：&lt;br /&gt;
 docker load -&#039;&#039;&#039;i&#039;&#039;&#039; /root/my_custom_image.tar&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第五步：在新 VPS 上启动服务 ==&lt;br /&gt;
数据传完了，现在去新家“通电”。&lt;br /&gt;
&lt;br /&gt;
# SSH 登录到新 VPS。&lt;br /&gt;
# 进入项目目录。&lt;br /&gt;
&lt;br /&gt;
 cd /opt/stacks/wordpress&lt;br /&gt;
 &lt;br /&gt;
 # 检查文件是否都在&lt;br /&gt;
 ls -al&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# 启动服务。&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;docker compose up -d&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# 检查运行状态。&lt;br /&gt;
&lt;br /&gt;
 # 查看容器状态&lt;br /&gt;
 docker compose ps&lt;br /&gt;
 &lt;br /&gt;
 # 查看日志，确保没有报错&lt;br /&gt;
 docker compose logs -f&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第六步：最后的收尾（DNS 解析） ==&lt;br /&gt;
如果你的服务绑定了域名（例如 &amp;lt;code&amp;gt;blog.example.com&amp;lt;/code&amp;gt;），迁移完成后，千万别忘了去你的域名服务商（Cloudflare, Namesilo 等）那里：&lt;br /&gt;
&lt;br /&gt;
# 修改 A 记录：将 IP 地址修改为新 VPS 的 IP。&lt;br /&gt;
# 等待生效：通常几分钟内生效。&lt;br /&gt;
&lt;br /&gt;
=== 常见问题排查 ===&lt;br /&gt;
Q: 启动后提示 &amp;lt;code&amp;gt;Permission denied&amp;lt;/code&amp;gt;？ A: 这通常是因为 rsync 没有加 &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; 参数，导致文件所有者变了（比如数据库文件需要特定用户权限）。 &#039;&#039;解决方法&#039;&#039;：在项目目录下查看原本数据库容器要求的权限，或者直接暴力修复（不推荐生产环境）：&amp;lt;code&amp;gt;chmod -R 777 ./data&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
Q: 新机器的网络不通？ A: 检查新 VPS 的防火墙（UFW/IPTables）是否放行了 Docker 映射的端口（如 80, 443, 8080）。&lt;br /&gt;
 # 放行常用端口示例&lt;br /&gt;
 &#039;&#039;&#039;ufw&#039;&#039;&#039; allow 80/tcp&lt;br /&gt;
 &#039;&#039;&#039;ufw&#039;&#039;&#039; allow 443/tcp&lt;br /&gt;
 &#039;&#039;&#039;ufw&#039;&#039;&#039; reload&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
</feed>