logo NodeSeekbeta

🐳 Docker Migrate — 好用的Docker迁移工具

  • 宝塔环境,搭建的项目是:https://github.com/huangxd-/danmu_api
    老vps,搭建方法:
    image
    image

    新vps,安装宝塔,在宝塔面板安装docker,安装后执行迁移

    迁移问题,正常迁移没报错,可以恢复,但恢复过来新vps哪里docker是暂停状态,重启docker可以成功,但是没恢复过来docker的端口,就是老vps设置了docker端口,而迁移后端口无了,需要手动编辑docker添加端口就好了。

    抽空看看能不能复现问题

  • [A] 加载镜像(如 images.tar 存在)
    Loaded image: apache/kvrocks:latest
    Loaded image: ghcr.io/decohererk/decotv:latest
    Loaded image: ghcr.io/fish2018/pansou-web:latest
    Loaded image: ghcr.io/jiangrui1994/cloudsaver:latest
    Loaded image: ghcr.io/li-peifeng/inoi:latest
    Loaded image: ghcr.io/umami-software/umami:latest
    Loaded image: logvar/danmu-api:latest
    Loaded image: postgres:15-alpine
    [B] 回灌命名卷
     - decotv_kvrocks-data
     - umami_umami-db-data
    [C] 回灌绑定目录
     - /www/wwwroot/cs/log
     - /www/wwwroot/cs/data
     - /www/wwwroot/panso/log
     - /www/wwwroot/panso/data
     - /www/wwwroot/fufubox/data
    [D] 恢复 Compose 项目
     - project: umami
     · 还原 compose 配置到原路径:/root/docker_migrate_restore/vf89nrzEWrtargz/vf89nrzEWr/compose_restore/umami
    WARN[0000] volume "umami_umami-db-data" already exists but was not created by Docker Compose. Use `external: true` to use an existing volume 
    [+] up 3/3
     ✔ Network umami_default   Created                                                                               0.0s
     ✔ Container umami-db-1    Healthy                                                                              11.4s
     ✔ Container umami-umami-1 Started                                                                               5.9s
     - project: decotv
     · 还原 compose 配置到原路径:/www/wwwroot/decotv
    WARN[0000] volume "decotv_kvrocks-data" already exists but was not created by Docker Compose. Use `external: true` to use an existing volume 
    [+] up 2/2
     ✔ Network... Created                                                                                            0.0s
     ✘ Contain... Error response from daemon: failed to read config content: NotFound: content digest sha256:20133e9aeae5d06ed542af94d93d6e34e0e98d25b316b19bf2fb50515f0ea869: not found 0.0s
    Error response from daemon: failed to read config content: NotFound: content digest sha256:20133e9aeae5d06ed542af94d93d6e34e0e98d25b316b19bf2fb50515f0ea869: not found
    [ERR] 恢复脚本返回非零:1
    
    

    一共迁移8个容器,迁移第1(2)个容器失败了,就剩下的容器就会停止恢复,报错代码如上,建议失败的暂时跳过不要影响后面的
    小建议:
    1.让程序可以指定本地目录,不至于第一次失败,还得再拉一次备份文件。
    2.备份文件生成链接时候8080端口还是不好用,失败。建议换一个思路,比如让debian自己生成文件的直链,比如宝塔,文件,右键可以生成分享链接,就能用。 下载备份文件时候curl 建议带上参数-k,忽略因为源站ssl证书问题断开下载。
    3.建议有多种恢复容器方式,第一种出错尝试第二种,第二种出错尝试第三种。都出错就跳过这个,不要影响后面的。

    image

  • 帮顶,我也研究过怎么完整备份迁移,最后用AI写了一个compose标准化模版工具:
    https://www.nodeseek.com/post-674509-1
    从一开始就按严格标准存放每个项目映射卷和compose文件,手动打包备份迁移 xhj022

  • @sakura-s #55 感谢反馈,很实用的建议,有时间尽快修复

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72280位seeker

🎉欢迎新用户🎉