编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

群晖玩家必看,Container Manager容器升级不踩坑

wxchong 2024-07-08 23:30:18 开源技术 23 ℃ 0 评论

群晖NAS上的Container Manager提供了一个直观的界面,使Docker容器的搭建和维护变得非常轻松

但随着时间的推移,对应的镜像也会推出新的功能或修复一些漏洞。当我们在网上搜索查找如何升级容器时,大多都是介绍Docker升级相关命令,而没有介绍如何通过Container Manager升级容器

我们今天来聊聊如何利用群晖的Container Manager升级你的Docker容器,免去繁琐的命令行操作

理解Docker容器的更新

在深入了解更新过程之前,有几个关键点需要理解:

Docker镜像

镜像是构建Docker容器的模板。一个镜像包含了运行一个应用所必需的所有代码、运行时、库、环境变量和配置文件。镜像本身是不可变的,即一旦创建,就不会被改变

更新Docker镜像

当镜像的创建者发布了新版本,这个新版本将作为新的镜像被发布到Docker Hub或其他Docker注册中心。为了使用这些更新,用户需要下载或拉取这个新的镜像版本到他们的系统中

数据持久性

重建容器可能意味着丢失容器内的数据,除非使用了数据卷(volumes)或绑定挂载(bind mounts)

数据卷和挂载点是持久存储解决方案,能够在容器删除后保留数据。在更新容器时,只需要确保重新链接到这些卷,这样新的容器才可以访问先前容器中的持续数据

检查兼容性

当使用一个新的镜像版本时,要检查新的版本来确保与原有的容器配置兼容。如果新版本做了任何重大变化,可能还需要更新环境变量、配置文件或命令

查看新版本

在Container Manager中打开映像选项,就能看到所有已经下载的镜像。如果镜像有新版本,那么也会在标签后进行提示

还有一种方式来判断镜像是否有更新,可以看到每个镜像后都有一个创建时间,我们可以通过创建时间来大致判断是否为最新版本。比如erpnext这个镜像,是去年10月份进行构建的,版本是v15.0.0

打开镜像对应的注册表地址后,就能看到v15.0.0是4个月前创建的。这种方式同样可以用来判断latest的镜像

容器升级

接下来以memos为例来演示容器的升级

打开memos网页,首先确认当前运行memos的版本

就像前面说的,想要更新容器,那么需要下载新版本的镜像到系统中。所以要在注册表中再次下载最新版本的镜像,这里需要注意,新下载的镜像要和原有镜像保持一致(作者/镜像名)

如果原来的镜像也是用的latest标签,那么下载的镜像也要使用latest标签

下载完毕后,就可以在映像选项中看到当前映像的构建日期

经过与Docker Hub的对比,可以确认是最新的版本

接下来停止memos容器,右键点击重置按钮,等待memos容器重置完毕

重置完毕后,重启刚刚重置的memos容器。现在启动的容器就是最新版本的容器了

现在登录memos网页,可以看到版本号已经变为最新的v0.20.1

同时我们发现memos里面的数据并没有随着容器升级而丢失,这是因为使用了数据卷把容器中的数据保存在群晖的文件夹中

如果镜像没有提供数据映射或是自己没有配置映射,那么一旦升级容器就会导致数据丢失,这也是很多玩家不敢升级容器的原因

前面提到的数据兼容性也是保证容器稳定升级和数据安全性的重要因素,在某些情况下,特别是涉及到从主版本升级到下一个主版本(比如从v1.0.0升级到v2.0.0)时,容器的存储路径和其他环境配置可能会遭到修改,这就可能导致即便升级操作成功,容器也无法正常运行

如果遇到这种情况,就需要查阅官方文档,并根据文档中的说明来调整自己的容器配置

如果长期不升级容器,随着镜像的迭代更新,这种情况会经常发生。想要减少这样的情况,我们要定期对容器进行升级,可以根据镜像的更新频率,动态的调整自己的升级周期,比如三个月、半年来平衡稳定性和新功能的需求

更简单的方法

在群晖最新的7.x版本中,有更简单的方法对容器进行升级

只需点击镜像后有可用更新按钮,在弹出的标签页中,再点击更新按钮即可

这样Container Manager就会自动下载最新的镜像,再启动新的容器,他的原理和我们前面介绍的一样,只是较少了用户的操作。新容器将继续采用最初配置时的参数,存储卷和环境变量这些配置也都会被一并保留

后记

如果在最开始下载镜像时选择的是非latest版本的特定标签,比如v15.0.0,那么在准备升级到新版,例如v16.0.0的操作时,就必须要重新配置环境变量和映射文件夹了,至于老版本的数据,也要看是否能直接在v16.0.0中使用,如果不能共用,那就只能手动把数据导入新版本中

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表