我在 Docker 中运行我最喜欢的应用程序,因此我不需要重新安装它们。
你是否厌倦了配置、重新配置,再配置你最喜欢的服务器应用程序?我曾经厌倦过,但 Docker 解决了这个问题。可移植性使 Docker 成为我最喜欢的家庭实验室工具之一,我认为你也会喜欢它。
配置应用程序是任何软件中最烦人的部分
没有什么比配置和设置自托管应用程序更令人烦恼的了。有些软件的设置非常简单,仅需几分钟,而其他程序则可能需要几个小时才能正确配置。
在设置用户、远程访问、库和目录以及其他配置选项之间,一旦我设置好一个程序,我不想再经历一次这个过程。
这是Docker最好的特性之一——一旦你设置了一个程序,除非你的配置文件出现重大问题,否则你真的不需要担心将来重新设置它。
Docker的可移植性将配置文件放在应用程序之外
Docker 我最喜欢的功能之一是配置和设置文件保存在应用程序外部。
这可以通过两种方式之一完成。首先,Docker可以为每个容器使用自己的Docker卷(或为多个容器使用一个卷)。Docker卷作为独立的存储单元,完全由Docker管理。
使用 Docker 卷时,您将无法在容器外部自行管理或编辑文件,这可以被视为一个缺点。然而,使用卷时,Docker 容器无法访问主机文件,这无疑更安全。此外,Docker 卷是便携性的最佳选择,因为 Docker 知道它在对其做什么,因为 Docker 卷使用的是 Docker 自己的文件系统。
Docker 文件管理的第二种方式是通过所谓的绑定挂载。使用绑定挂载,你实际上是将主机上的一个文件夹或文件绑定到 Docker 容器中。这是我首选的方法,因为这样我可以轻松地从主机访问该容器的所有 Docker 配置文件。
绑定挂载就像 Docker 卷一样可移植,但如果您从 Linux 迁移到 macOS 或 Windows,可能需要更改路径或符号。然而,如果您是从 Linux 迁移到 Linux,那么东西应该可以直接复制过来。
无论您使用哪种方法——卷或绑定挂载——大多数 Docker 容器都会将所有配置文件、数据库和其他类似的东西存储在容器外部。这允许您将容器移至新系统或简单地重新安装容器,而不用担心再次配置的事情。
Docker的设计使重新安装成为过去的担忧
由于Docker的可移植性,您可以轻松更改正在使用的容器,或仅仅重新安装一个容器而不必担心会出现问题。
例如,我几周前试图使用 Calibre-Web(连接到我的 Calibre 容器)来转换一些电子书文件。我使用的 Calibre-Web 容器已经过时,缺少一些库。我开始时尝试在容器中手动安装它们,但这并没有成功。
所以,我在ChatGPT的帮助下,创建了一个全新的容器,已经配置好了缺失的库。这相对简单,但最好的部分是,我只需将我的Docker容器从使用旧镜像更改为使用新镜像。
由于我的Docker容器的基础功能没有改变——毕竟它仍然是Calibre-Web——我能够保持我的配置文件不变,一切在我更改使用的容器时都能正常工作。
同样,当我开始时,我有一些由社区维护的容器,但最终得到了官方容器。尽管在Docker中不得不更改一些环境标志,但我只需更改我使用的镜像,就能顺利切换到官方容器。
我也曾经进入一个容器(访问该容器的终端 shell),修改了那个容器的核心文件以试图修复一些问题,却把它弄得更糟。在那个情况下,我只是重新拉取了 Docker 镜像并重新安装了容器。所有我的配置设置都得到了保存,因为它们存储在容器外部,但我在容器内部所做的更改则通过重新安装被修复了。
总体来说,Docker 的便携性是我在其中运行我喜爱的应用程序的原因。我能够将 Docker 容器从一个系统移动到另一个系统,或者在不丢失任何配置数据的情况下重新安装应用程序。
如果你还没有尝试Docker,现在正是试一试的完美时机。对于大多数容器来说,你的应用设置都是一次性完成的,而且从那里开始,优势只会更多。
不确定从哪里开始使用 Docker?我有一系列我认为每个自宅实验室爱好者都应该运行的最爱 Docker 容器。从 Plex 到 Homepage,我的总结中有适合每个人的东西。
