网站搜索

Docker Compose 让我的家庭实验室管理变得容易了十倍——原因如下


我已经使用 Docker 超过半个十年了,在这段时间里,我绝大多数时间都使用 Docker Run 命令。最近我改用了 Docker Compose,这让我的家庭实验室管理起来轻松了很多。

我总是使用 Docker Run 命令,因为它们很直接

我只是把它们翻译成了 Portainer 启动命令

我直接从在 Unraid 中使用 Docker 转到了在 Portainer 中使用 Docker,这意味着我基本上从未接触过 Docker Compose 文件。Unraid 上的 Docker 非常直观,因为大多数应用都有自动配置的模板。

使用 Portainer 时,我想要一些感觉熟悉的东西,所以我只是修改了 Docker Run 命令(甚至是 Docker Compose 文件),以便在 Portainer 的正常启动参数内工作。实际上,我是在使用 Docker Run,只是增加了额外的步骤。

我喜欢这种方法,因为它很熟悉,相对简单,并且直接显示了所有选项,而不需要我去猜应该在命令中输入什么。Portainer 确实让 Docker 变得易于使用。问题是,当迁移到不同的系统时,这并没有帮助。

然而,Docker Compose 与系统无关,无论在哪里使用它,都能以相同的方式工作。最终,我决定放弃以前启动容器的旧方法,完全采用 Docker Compose,并且我对这一变化非常满意。

Docker Compose 更容易自定义

这一切都是用 YAML 完成的,而不是通过设置界面






如果你以前从未使用过 Docker Compose,它本质上只是一个 YAML 文件,用来告诉 Docker 应该做什么。你可以在一个 Compose 文件中包含多个容器,它们都会自动共享一个本地网络,这对于较大的服务来说非常方便。

在启动服务后,你也可以查看和编辑 Compose 文件。使用终端中的普通 Docker Run 命令,这是不可能的。你必须手动停止该容器,然后重新输入命令再次启动容器。

使用像 Portainer 这样的工具,你实际上是在重新构建容器,必须更改你想要的设置,然后再重新部署。它比普通的 Docker Run 命令简单一些,但仍然不是那么简单。

使用 Docker Compose,我现在只需打开 Compose 文件,对其进行所需的修改,然后重新部署 Compose 文件。现在对容器进行更改比以前简单得多。

Docker Compose 让我能够轻松地将容器移动到不同的系统

只需复制并粘贴 Compose 文件即可

将容器迁移到不同的系统正是我将所有东西迁移到 Compose 的原因。大约一个月前,我在我的家庭实验室发生了一次相当严重的数据丢失事件——完全是我的错。

谢天谢地,我没有丢失任何太重要的东西,但让一切重新工作仍然非常麻烦。这包括我不得不重新启动的所有 Docker 容器。我丢失了所有容器的配置。对于我没有丢失的容器,我没有任何真正的方式来备份它们的启动命令。

所以,我决定使用 Docker Compose 重新创建我所有的容器。这很繁琐,但最终绝对值得。现在,我可以将同一个在一个系统上运行的 Docker Compose 文件,复制粘贴到另一个系统上,那个 Docker 堆栈就能在几秒钟内启动并运行。

这非常方便,我也不知道为什么以前没有使用 Docker Compose。以今天为例。截至撰写本文时,Plex 最近宣布了终身 Plex Pass 的涨价。

虽然我已经拥有终身 Plex 订阅,但我想尝试一下 Jellyfin,因为自上次使用它已经有一段时间了。我能够简单地打开我的 Plex Compose 文件,复制存储媒体的文件路径,甚至复制转码设备的设备路径,然后将它们粘贴到 Jellyfin Compose 文件中。

五分钟内,我已经启动并运行了 Jellyfin,具备完整的转码支持,并能读取 Plex 已经可以访问的所有电影和电视剧库。我不需要切换多个标签页来查看有哪些设置,不需要逐行复制粘贴内容,也不需要试着记住要切换哪些选项。

由于这一切都是 YAML,并且都在同一系统上,所有辅助信息,如媒体和设备路径,对于两个流媒体平台都是相同的。这使得部署 Jellyfin 非常简单。

我也用同样的技术将 Docker 堆栈迁移到完全不同的系统。我在家庭实验室里有三台迷你电脑,以及一台全尺寸台式机和两台 NAS 服务器——所有这些设备都运行 Docker。

所以,我能够简单地取出 Compose 文件和存储在服务器上的任何配置文件,移动到新系统上,并在几秒钟内启动它。


Docker Compose 是我多年前就希望做出的家庭实验室改变

归根结底,Docker Compose 只是让我的家庭实验室更容易管理。我希望自己早就使用它,因为在将容器迁移到新服务器时,它本可以为我节省不少心痛。

如果你还没有使用 Docker Compose,试试吧。它并不像你想象的那样令人生畏,而且它会极大地改善你的 Docker 工作流程。

相关文章