登录

DockHop 开源项目:简单两步,完整迁移你的 dcoker 服务,主打易用、安全、可靠✨✨✨

9619
  • 楼主 编辑于

    写在最前面
    写这个项目的初衷就是为了帮大家更简单的迁移 Docker。毕竟作为一名 MJJ,迁移 Docker 是常有的事。但是每次都要手动一个一个的迁移还是太费劲了,而且还常常因为各种问题导致出错。于是这个项目便诞生了。只需要跟着提示一步一步的运行,你就能迁移你的所有 docker 服务,简单好用的一批。至于项目本身的可靠性方面,这个项目并不是临时起意,也不是草草 vibe coding 了一下就拿来给大家的,项目本身我已经打磨了几个月,项目开始我就设计好了完整的架构。按照架构一步步实现的,而且 AI 写的重要代码,我也会自己 review,确保没问题了再上线。所以,大家可以放心使用。 最后,希望这个项目能给大家带来一点点的帮助吧。如果有帮到你,也希望能给项目点个免费的 star。万分感谢!

    只需两步,完整迁移你的 Docker 服务
    是什么?

    DockHop 是一个 Docker 迁移工具:一个脚本即可完整迁移你的 docker 服务,迁完就能直接用。主打安全、可靠、易用。

    特点

    • 简单:两台服务器运行同一条命令,一台选「迁出」,一台选「迁入」,按步骤即可完成迁移。不用记配置、不用记参数、这些都由脚本来搞定。
    • 完整迁移:镜像、数据卷、挂载目录、端口、环境变量、网络、Compose 项目都会迁移,容器里改过的文件也不丢。完整迁移
    • 可靠:严格的测试流程,保证使用的可靠性。你能想到的问题点,我都有考虑。
    • 安全:数据加密传输,不怕中间人劫持或篡改。保证迁移安全。给你满满的安全感。
    • 干净:只需要 Docker,不需要安装其他依赖;运行过程中的中间产物,包括脚本自身也是用完即删。不会在服务器上面乱拉屎

    快速开始

    在旧服务器和新服务器上运行同一条命令:

    bash <(curl -fsSL https://dockhop.run)
    

    第一步,旧服务器:选 1. 迁出,选好要迁的服务。打包完会显示一条迁移链接,复制它。这个窗口先别关,新服务器要从这里下载数据。

    第二步,新服务器:选 2. 迁入,粘贴刚才复制的链接。检查、下载、恢复都会自动完成,迁入成功后旧服务器那边也会自动结束。

    [!NOTE]
    迁移链接里含有解密密钥,不要发给别人。

    [!TIP]
    新服务器连不上,几乎都是旧服务器没有放行端口(默认 TCP 8080)。在云服务商的安全组和服务器防火墙里放行就行。

    迁移哪些东西

    • 镜像:和旧服务器上的版本一模一样。新服务器上已经有、或者能从镜像仓库拉到同一个镜像时,就不从旧服务器传
    • 数据卷、挂载的目录和文件,属主和权限保持不变
    • 容器里没挂载出来、但改过的文件
    • 端口、环境变量、启动命令、重启策略、资源限制、健康检查等全部运行参数
    • 自定义网络、固定 IP、网络别名
    • Docker Compose 项目:整个项目目录和它引用的文件,迁移后照常 docker compose up -d
    • 容器原来的状态:运行、暂停或停止

    系统要求

    • Linux,x86_64、arm64 或 armv7,用 root 运行
    • Docker 20.10 或更新的版本
    • 迁移 Compose 项目时,新服务器要装好 docker compose
    • 一行命令需要 curl(或 wget)和 sha256sum,常见的发行版都自带
    • 新服务器要能连上旧服务器的一个 TCP 端口(默认 8080)

    更多用法

    一般按菜单走就够了。需要的时候,把选项加在命令后面,例如:

    bash <(curl -fsSL https://dockhop.run) out --port 9000
    
    选项作用
    out --port 端口下载服务用的端口,默认 8080。安全组只放行了某个端口时用它
    out --host 地址链接里用的 IP 或域名。自动探测不准(NAT、多网卡),或者想走内网时用
    out --include a,b只迁移这几个容器(或它们所在的 Compose 项目),不显示菜单
    out --stop-shared允许临时停掉和所选容器共用数据的其他容器,打包完自动恢复
    in --yes检查发现的问题自动按推荐的方式处理
    in --existing replace|skip|fail新服务器已有同名服务时:替换、保留已有的,或者停止迁入
    in --keep-succeeded有服务起不来时,保留已经正常运行的,只删除起不来的
    环境变量作用
    DOCKHOP_HOMEDockHop 放文件的目录,默认 ~/.dockhop。系统盘不够大时,换到大一点的盘
    DOCKHOP_MIRROR下载程序用的镜像站。不设置时,国内先用 Gitee,其他地方先用 GitHub
    DOCKHOP_NO_STATS=1不统计、也不显示迁移次数

    完整说明见 dockhop --help。

    项目地址:https://github.com/lx969788249/dockhop 欢迎来点个免费的 star

    收藏 2支持 1反对打赏

19 条回复

发表回复