网站搜索

我几乎把Docker用于所有事情,而我甚至不是开发者。


你认为Docker仅适合开发者吗?我听过这样的说法,但这绝对是错误的。我不是开发者,但我在我的家庭实验室中使用Docker运行数十个服务和应用程序。

Docker 到底是什么?

Docker 是一个容器化平台,它允许您在计算机或服务器上运行服务、程序和迷你操作系统。它还可以用于运行各种开发环境、工具以及构建应用程序所需的其他东西。

使用Docker的主要原因之一是能够将各种服务与彼此以及您的宿主操作系统隔离开来。这使您能够为系统提供更大的隐私和保护。如果一个容器受到攻击,它只能访问自己以及您授予它访问权限的其他资源。

那么,我算是一个开发者吗?

我不一定会称自己为 "开发者"。虽然我曾经做过一些编程和应用开发,但已经很多年没做了。我熟悉Linux终端,并且在我的个人网站上仍然会玩玩HTML或CSS,但我绝对算不上一个全面的开发者。

最多,我只是个爱摆弄的人。我喜欢搞点小动作,修改应用程序的代码使其按照我的想法运行,并在我自己搭建的实验室中探索各种服务。

因为我不做开发任务,所以我实际上并不在 Docker 中运行任何开发服务。虽然 Docker 中有一些很棒的开发工具,但我个人用不到它们。

如果我不是开发者,为什么要使用Docker?

尽管Docker在帮助开发任务方面做得非常棒,但这并不是我使用它的用例。相反,我利用Docker的容器化来做一些完全不同的事情:家庭实验室。

有成千上万的Docker容器可供使用。许多可用的容器专注于运行服务或程序,而不一定是开发。

在我的家用实验室中,我的主要 Docker 主机上部署了近 30 个 Docker 容器,而我的次要 Docker 主机上还部署了六个多。这些服务包括 Pi-hole、Plex、OpenSpeedTest、Calibre、paperless-ngx、Home Assistant、Tautulli、Homepage 等等。

问题是:我为什么使用 Docker 而不只是直接安装应用程序?答案很简单:我喜欢容器。

使用 Docker,我的 Plex 容器无法访问我的网络上的任何东西,除非我授予它访问权限。因此,我只给 Plex 访问我的媒体库,仅此而已。Home Assistant 实际上对我的服务器完全没有访问权限;它有自己的 IP,并在我的网络上运行,但如果它被攻破,就无法访问我网络上的其他硬件。

其他我在Docker上运行的所有应用程序也是如此。它们都相互隔离。Docker容器仅能访问我授予的权限,这意味着我可以精确控制我的家庭实验室中的安全风险。

此外,Docker 容器为您要运行的应用程序预先配置,因此启动服务所需的设置很少。所有依赖项都已经存在,并且由容器开发者保持最新。如果某个依赖项需要重启,我只需重启 Docker 容器,而不是我的主机系统。

Docker 也很便携,我可以轻松更改主机系统,而无需重新安装或重新配置服务。我最近将我的 Docker 服务器从一台计算机迁移到另一台,唯一没有实际带上其配置的容器是 Home Assistant(我很容易从备份中恢复)。

当我第一次开始使用 Docker 时,我并没有意识到这个功能有多么有用。然而,我已经使用了很多次。虽然迁移功能很不错,但我最喜欢 Docker 的部分是我可以重新安装一个容器,而不会丢失任何设置或配置。

那么,我为什么使用Docker?这对我来说是安装、测试和使用我的家庭实验室中的服务最简单的方法。部署一个Docker容器只需几秒钟。当我完成后,我只需移除容器,服务(以及所有依赖项)就会消失。

Docker 驱动我的整个家用实验室,我无法想象其他方式.

在我家实验室旅程的这个阶段,我无法想象不使用 Docker。我甚至无法开始计算我在 Docker 中尝试过的服务数量,因为它们在几分钟后就被我删除了,因为它们没有达到我的预期。

没有 Docker,我需要安装软件及其所有依赖项。卸载时还需要移除这些依赖项,几乎总会留下杂散的配置文件。

Docker 让我的家庭实验室管理变得简单,绝对是这项工作的最佳工具。

在未来,我计划在高可用性环境中部署Docker。基本上,我将拥有三台配置相似的服务器,它们都运行Docker。我的首选Docker管理工具Portainer将把这些服务分配到各个服务器之间。

如果我需要在一台服务器上工作,所有这些服务都会迁移到另一台服务器并继续运行。当进行维护的服务器恢复正常后,就可以再将容器部署到该服务器上。

如果不使用某种形式的应用管理系统,例如 Docker,这将是不可能的。由于 Docker 处理其卷和存储的方式,当这些服务迁移时,它们的所有首选项、配置文件以及应用程序使用的任何本地存储也会随之迁移。

Docker对我的设置绝对至关重要,我看不出它会很快离开。

所以,不,我不是一个开发者,但我绝对喜欢Docker。如果你不是开发者,你绝对应该试试Docker——这会让你的环境有很大改善。


有很多Docker容器可以尝试,实际上有数万种。如果这让你感到不知所措,你并不是一个人。这里是我最喜欢的一些Docker容器,我认为每个家用实验室都应该有,范围从简单的网页到完整的服务。