群晖Container Manager/Docker容器更新方法

分享两个Docker容器更新的方法,适用于大部分的容器更新。

目前碰到两个容器(postgres、tinymediamanager)大版本更新的时候需要特别的方式迁移数据,不适用以下两个方法,大版本更新的时候特别需要做好数据还有映像的备份。

方法一 手动更新

下载最新的映像

下载最新的映像,可以在套件内注册表直接下载,或者连接ssh使用docker pull命令下载。

旧容器备份

停止 旧容器,并且删除旧容器的端口映射 ,为新容器腾出端口。保存

新建新容器

右键点击停止的旧容器,选择复制设置

通过复制设置新建一个新容器,新容器将会用你下载的最新映像新建,同时保留了旧容器的设置,通过这个方法来进行容器的更新。

新容器建好后,打开新容器设置 ,把原来的端口映射 填好,保存启动新容器。

  • 启动新容器之后,查看测试一下新容器是否完全更新启动好。如果没有问题的话,就可以将旧容器删除。

旧映像删除

新容器下载后,旧印象的latest 标签(TAG)会被新容器取代,旧容器的标签(TAG)会变成none。旧容器删除之后并不能删除掉旧映像,并且在套件后台是看不到映像的,需要删除的话要按照以下的方法连接SSH删除。

启动SSH功能

打开控制面板 ,点击终端机和SNMP ,勾选启动SSH功能点击应用。

连接SSH

使用Putty或者Xshell等SSH客户端工具软件连接。本文以Xshell为例。

打开Xshell,新建连接,输入你的NAS地址和端口点击确定,在输入用户名和密码后就进入终端机界面。

查看删除映像

首先输入sudo -i,回车后在输入一次密码,获取权限。然后在输入docker images查看映像。 如上图所示,有几个TAG是none 的映像。都是之前更新下载没有删除的。复制好需要删除的映像ID,用docker rmi <image id> <image id>来删除映像,多个映像ID使用空格隔开。删除映像后可以使用docker images查看映像,看是否删除成功。

更新失败说明

  • 如果发现新容器没有安装成功,可能是容器不适用于此方法更新
  • 可以删除新容器,把旧容器的端口映射设置回来,启动旧容器,大多数时候还能使用回旧容器。
  • 然后去查看具体容器的文档,看是否有更新容器的具体方法。

方法二 一键更新

群晖DSM 7.2发布之后,Docker改名为Container Manager。全新的名字,也带来了不少的变化。其中最让我眼前一亮的是支持提醒映像更新,可以一键更新映像,还能提醒移除未使用的一键。

本方法就是采用群晖Container Manager自带的更新功能,更新起来非常方便,会自动删除旧映像,不过就没有备份旧容器的操作。使用本功能更新前建议做好备份!

查看更新

本功能需要NAS可以正常访问Dockerhub才可以使用,不然看不到更新提示。

在映像也可以看到有可用更新的提示才能进行下一步,不然无法用此方法更新。

下载映像及更新

点击可用更新的 后会跳出提示框,提示有数据清除的风险,再次建议事先做好数据备份!!!同时可以去查看一下更新的版本内容,如果是大版本更新不建议采用此方法,还是好好看看具体容器的更新文档。

确认完毕后开始更新,开始下载映像,然后就自动更新。过程非常无感。需要耐心等待一段时间,不要乱停止启动正在更新的容器。

更新完成后,可用更新的提示消失,容器正常启动就说明更新完成。

补充说明

如果容器存在链接的情况下,会出现链接的容器是连接到一个容器名.syno.bak的容器,会导致找不到正确的链接的容器的情况,此时只要去对应的容器中,重新修改链接到更新好的容器名上去就好。

也侧面可以推测该方法的更新原理应该与方法一差不多,先备份旧容器在复制新容器,只不过是一件操作完成了,不需要手动。

  • 使用体验下来的感受,此方法用于小版本的容器升级非常高效便携,不过大版本的还是自己手动做好备份更新,不然可能带来更多的不便(T_T 本人经历过惨痛的教训...
  • 一些容器更新频率高,如果看到更新提醒一定要管住自己的手,如没有需要不建议频繁更新,不然也会带来更多的不便(T_T 又是一个惨痛的教训...
相关推荐
eight *41 分钟前
docker部署elk+filebeat日志收集分析系统
elk·docker·容器
自己的九又四分之三站台2 小时前
docker安装pgvector、age和postgis
运维·docker·容器
幺零九零零3 小时前
Docker底层-IPC Namespace(进程间通信隔离)
运维·docker·容器
eddy-原4 小时前
ELKStack 与 Kubernetes 核心基础知识点综合作业
云原生·容器·kubernetes
V胡桃夹子4 小时前
Docker快速部署apollo
运维·docker·容器
oMcLin5 小时前
如何利用 Podman 替代 Docker:无 root 权限的容器管理实践
docker·dubbo·podman
程序员老赵6 小时前
ComfyUI Docker 镜像部署指南
人工智能·docker·aigc
会飞的土拨鼠呀7 小时前
Docker 部署开源蜜罐Cowrie
docker·容器·开源
我是谁??7 小时前
Rocky9.2离线安装docker和NVIDIA Container Toolkit训练环境搭建
运维·docker·容器
oMcLin7 小时前
如何在 Linux 上的 aaPanel 中使用 Docker 部署 WordPress 博客:从配置到上线一站式教程
linux·运维·docker