找回密码
 加入我们
搜索
      
查看: 5635|回复: 37

[NAS] 【讨论】群晖的docker容器怎么做迁移(备份)

[复制链接]
发表于 2024-8-5 16:00 | 显示全部楼层 |阅读模式
请教,我有两台黑群晖A、B(配置一样的),想把其中一台群晖A的dokcer的“容器” 备份到另外一台群晖B,以便A硬件损坏后,启动B的docker里面的容器的备份?
目前测试的结果:
1.我使用docker的 导出容器配置和内容,预估是1G以上数据,结果只有一个十几kb的jason文件?
2.群晖自带的 容器导出 功能,失败,日志提示:
微信截图_20240805155905.png
发表于 2024-8-5 16:02 | 显示全部楼层
最近掉盘好几次,对docker版的QB备份已经了如指掌了。。。这个容器想都不敢想
 楼主| 发表于 2024-8-5 16:07 | 显示全部楼层
sChmo 发表于 2024-8-5 16:02
最近掉盘好几次,对docker版的QB备份已经了如指掌了。。。这个容器想都不敢想 ...

你指导一下,怎么操作的?
发表于 2024-8-5 16:13 | 显示全部楼层
两台黑群做HA高可用,有HA套件使用很简单,包括不仅限于docker服务,一台完全坏掉,另一台顶起,不影响访问体验
 楼主| 发表于 2024-8-5 16:22 | 显示全部楼层
不需要高可用,可以忍受中断一天这样的时间,我就是想知道群晖的docker导出导入这样的功能有没有成功的?
发表于 2024-8-5 16:25 来自手机 | 显示全部楼层
用ssh命令行按照Linux系统的备份方式看看?
不过群晖的ssh组件不全,用着有点脑淤血
 楼主| 发表于 2024-8-5 16:27 | 显示全部楼层
大头吃小头 发表于 2024-8-5 16:25
用ssh命令行按照Linux系统的备份方式看看?
不过群晖的ssh组件不全,用着有点脑淤血 ...

你说对了,这个命令行太不友好了
发表于 2024-8-5 16:34 | 显示全部楼层
黑色会 发表于 2024-8-5 16:22
不需要高可用,可以忍受中断一天这样的时间,我就是想知道群晖的docker导出导入这样的功能有没有成功的? ...

docker只要备份数据文件夹就可以了。镜像都是可以重复下载的。如果要同步两台的数据其实就是同步docker的数据文件夹。很多方案都能实现。
发表于 2024-8-5 16:51 | 显示全部楼层
docker都写成compose文件,然后只需要备份数据目录就可以了啊,我十几个docker都是这样备份的,换机器几分钟就搞定了
 楼主| 发表于 2024-8-5 16:53 | 显示全部楼层
霸天虎撤退 发表于 2024-8-5 16:51
docker都写成compose文件,然后只需要备份数据目录就可以了啊,我十几个docker都是这样备份的,换机器几分 ...

docker都写成compose文件--这个怎么操作
发表于 2024-8-5 16:59 | 显示全部楼层
黑色会 发表于 2024-8-5 08:53
docker都写成compose文件--这个怎么操作

先写个dockfile =.=
发表于 2024-8-5 17:00 | 显示全部楼层
大头吃小头 发表于 2024-8-5 08:25
用ssh命令行按照Linux系统的备份方式看看?
不过群晖的ssh组件不全,用着有点脑淤血 ...

套件装diagnosis tool能补充不少东西
发表于 2024-8-5 17:02 | 显示全部楼层
原理:提交正在运行的docker容器为镜像,然后导出镜像,在另外一台导入镜像,同时把存储数据的挂载目录拷贝到同一目录。
前提:群辉的命令行支持这些操作
操作:使用类**的ai模型生成操作命令。
发表于 2024-8-5 17:11 | 显示全部楼层
本帖最后由 东东东尼大木 于 2024-8-5 17:26 编辑
霸天虎撤退 发表于 2024-8-5 16:51
docker都写成compose文件,然后只需要备份数据目录就可以了啊,我十几个docker都是这样备份的,换机器几分 ...


我很疑惑为什么都喜欢写成compose文件 群晖compose文件是以创建项目来实现  我几十个docker都在一个compose里面  之前尝试过 启动也是一起启动 关闭也是一起关闭  删除项目就把所有项目里面的docker都删除了好像。。。。这个方便在哪呢
发表于 2024-8-5 19:20 来自手机 | 显示全部楼层
东东东尼大木 发表于 2024-8-5 17:11
我很疑惑为什么都喜欢写成compose文件 群晖compose文件是以创建项目来实现  我几十个docker都在一个compo ...

分开多个项目啊,有关联的docker可以写在一起作为一个项目
发表于 2024-8-5 21:50 来自手机 | 显示全部楼层
貌似在/etc某个目录里
发表于 2024-8-6 00:01 | 显示全部楼层
9楼正解。也是用docker-compose.yaml的方式部署,也就是容器管理里的项目。迁移配置文件和数据目录即可
发表于 2024-8-6 07:44 来自手机 | 显示全部楼层
个人一直建议家用服务器要虚拟化,且不要直通而是使用虚拟磁盘文件,因为应用数据难以备份!

我是虚拟ubuntu加虚拟磁盘运行在大ssd上,备份时直接备份虚拟机文件。

现在要迁移,办法是逐应用挂载本地目录,把数据copy出来,应用镜像做导出,然后再新机应用镜像导入,再挂载数据。以后记得用户数据,docker容器都应该挂载本地目录,以便备份!
发表于 2024-8-6 08:45 | 显示全部楼层
  1. cp
复制代码
把volumns里面数据备份,然后
  1. -v
复制代码
把容器需要的数据目录挂载到本地,最后把
  1. docker run
复制代码
命令记下重新开就行了
发表于 2024-8-6 10:38 | 显示全部楼层
纯小白也来讨论下,前天黑群晖系统崩了。开机提示要恢复系统,然后就按步骤恢复了,恢复后发现除了数据还在,其他全跟新的一样,连用户都要重新创建,container套件也要重新下载安装,里面的容积全没了,这是背景。

还好刚弄完黑群建好各容器的时候,听朋友建议把各个容器导出了,就是container里的-导出容器内容和设置,导出为.txz文件。

这次系统恢复完后,就又用container里的导入功能,把.txz文件导入,就又可以用了。看楼主的图片是docker导出失败?不知道是不是因为我是7.2.1的黑群已经更新为container的原因?老版本docker不行?
 楼主| 发表于 2024-8-6 17:03 | 显示全部楼层
J.9h0st 发表于 2024-8-6 10:38
纯小白也来讨论下,前天黑群晖系统崩了。开机提示要恢复系统,然后就按步骤恢复了,恢复后发现除了数据还在 ...

我目前群晖6.2DSM的docker有两个容器,其中一个可以导出.txz并且可以导入(运行并没有成功)。另外一个容器导不出来,只能导出json文件
发表于 2024-12-11 09:10 | 显示全部楼层
黑色会 发表于 2024-8-6 17:03
我目前群晖6.2DSM的docker有两个容器,其中一个可以导出.txz并且可以导入(运行并没有成功)。另外一个容 ...

你可以两个群辉都开一个共享目录,然后用rsync同步docker挂在的本地磁盘文件和docker-compose文件 只要一个挂了 另外一个启动就好了。到时候在反向rsync一下。
如果你有一个单独的高稳定存储那最简单开nfs服务,docker的文件存在那里,随便挂重新拉就好了。
发表于 2024-12-11 11:40 | 显示全部楼层
本帖最后由 BetaHT 于 2024-12-11 11:48 编辑

我就说那些言必称nas要配docker的人基本上没长时间用过nas也没用过docker。
受害者就这么出现了——docker备份对个人用户来说是很难搞的。

备份容器,你需要备份容器的文件卷,也就是docker save/load。然后备份外挂目录。最后还要备份docker配置。恢复时相当于重新部署。
你如果像我有两位数的服务,全是docker的话这样做备份一次就要抓狂了。

自托管服务,建议优先考虑宿主机直接部署。

另外,还可以进一步偷懒变通:在虚拟机上部署docker,直接备份整个虚拟机即可。
发表于 2024-12-11 11:44 | 显示全部楼层
黑色会 发表于 2024-8-6 17:03
我目前群晖6.2DSM的docker有两个容器,其中一个可以导出.txz并且可以导入(运行并没有成功)。另外一个容 ...

群晖的docker,是无法通过界面正常备份的。它就没想过让你备份。

它只有一种真正有效的备份方式,就是要你再买一台群晖,通过它的双机同步来备份。
发表于 2024-12-11 11:47 | 显示全部楼层
devilwalk 发表于 2024-8-5 16:34
docker只要备份数据文件夹就可以了。镜像都是可以重复下载的。如果要同步两台的数据其实就是同步docker的 ...

不不,还有docker的配置! 我的emby,重新安装的话要重新建立、搜索媒体文件夹,需要1天时间!覆盖安装就几分钟。
发表于 2024-12-11 11:48 | 显示全部楼层
黑色会 发表于 2024-8-5 16:07
你指导一下,怎么操作的?

我的做法是备份docker配置文件夹,docker容器可以重新安装的。保留配置,重新安装就相当于更新容器。
发表于 2024-12-11 11:49 | 显示全部楼层
黑色会 发表于 2024-8-6 17:03
我目前群晖6.2DSM的docker有两个容器,其中一个可以导出.txz并且可以导入(运行并没有成功)。另外一个容 ...

共享文件夹直接复制粘贴就行。
发表于 2024-12-11 11:54 | 显示全部楼层
container只是软件程序,最理想的情况下是配置文件和数据都在外挂文件夹里面,只需要移动这个外挂文件夹就行了。

然后使用compose文件或者dockerfile文件重建容器。

问题就是怕有些操作是ssh到container里面去,在里面直接做了修改,这就很麻烦,基本上没发一建导出,需要到dockerfile里面做修改。
发表于 2024-12-11 20:31 | 显示全部楼层
本帖最后由 zhuwe123 于 2024-12-11 20:35 编辑
雨季不再来 发表于 2024-12-11 11:47
不不,还有docker的配置! 我的emby,重新安装的话要重新建立、搜索媒体文件夹,需要1天时间!覆盖安装就 ...


你外挂的那个磁盘的就是文件,docker都会把不变的挂在本地磁盘不会用docker存储的。只要复制到任何地方重新挂载起来你所有的进度就都回来了。emby这种都是存磁盘的。
 楼主| 发表于 2024-12-12 16:27 | 显示全部楼层
雨季不再来 发表于 2024-12-11 11:48
我的做法是备份docker配置文件夹,docker容器可以重新安装的。保留配置,重新安装就相当于更新容器。 ...

你说的是群晖的docker还是Linux之类的其他docker
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-26 13:53 , Processed in 0.015283 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表