群晖更新Docker容器方法
事实上Docker容器不存在更新一说,只有替换,用新的替换旧的以达到“更新”的目的
1、打开Docker在注册表菜单搜索“需要更新的文件”点击下载
2、打开Docker侧栏中的容器菜单,找到正在运行的“待更新”容器,点最右边的开关停止运行
3、在容器菜单,找到刚才已经停止的“待更新”容器,点[操作]菜单选择重置,弹窗选择[是]
4、重置中的容器,容器名称显示的字是由黑色变成了灰色,耐心等一会;重新变为黑色后选择启动
5、更新成功
有可能出现的问题:
1端口
如果旧的容器有 本地端口–>容器端口 的端口映射,复制出来的新容器会因为端口与旧容器相同而不能完成端口映射,此时应将旧容器端口修改成另外一个,再把新容器端口填上正确的,即可。
2冗余镜像
当从docker.io拉取新版本的镜像后,群晖的Docker镜像仓库里会多出一个名称一样,但版本号为None的镜像。
使用SSH连接群晖后,用
切换到管理员身份,再运行以下命令可以查看到所有镜像:
返回如下:
可以看到,jellyfin多出一个同名,但版本号为none的镜像。重复的镜像不仅占用空间,而且在群晖图形界面无法看到。
其原因是拉取Docker镜像没有指定版本号的话,默认会拉取版本号(tag)为“latest”的镜像,老的镜像和新的镜像版本号都是latest,就会把老镜像版本号挤掉,变成none。我们只需要保留tag为latest的即可。
解决方法是按上文步骤先完成Docker容器的更新,确定新容器正常运行,删除备份容器,再在命令行删除none版本镜像。因为旧容器和旧镜像是关联的,如果不先删除旧容器,是无法删除none这个镜像的。
按上述例子,删除了旧容器后,SSH执行如下命令,即可删除无用的镜像:
命令为docker rmi [镜像ID]
如果不记得镜像ID,可以用 docker images
命令查看。