【问题标题】:how to migrate docker into another machine without cloning the entire machine如何在不克隆整台机器的情况下将 docker 迁移到另一台机器上
【发布时间】:2021-12-23 05:30:46
【问题描述】:

我目前以这种方式管理我的 docker for postgresql(timescaleDB),在屏幕中打开一个 docker 以在后台运行。这样我就可以随时用屏幕检查它。

screen -dmS i2
screen -S i2 -X stuff 'docker run -ti --user 1000:1000  -p 5432:5432 --name timescaledb  --volume=/home/ubuntu/pgdata3:/home/postgresql/pgdata --rm -e POSTGRES_PASSWORD=sdjaisiisiauda123114892u3hihi -e PGDATA=/home/postgresql/pgdata timescale/timescaledb-ha:pg13-latest;\n'

我也在使用 EC2,但我不小心请求了大容量,我想回到小容量机器。而且我已经广泛使用了这个数据库,所以我不想在新机器中重建数据。

我的问题:如何将此 docker 映像/快照/实例(我的术语可能不准确)迁移到另一台机器并使用相同的命令从另一台机器运行?

谢谢

【问题讨论】:

    标签: linux postgresql docker timescaledb


    【解决方案1】:

    您不需要迁移 docker 映像——这就是 docker 的用途。您只需要迁移数据。

    --volume=/home/ubuntu/pgdata3:/home/postgresql/pgdata
    

    这是重要的部分——它将容器内部的数据文件夹映射到根文件系统上的/home/ubuntu/pgdata3。所以- 停止你的容器,压缩那个文件夹,在新机器上的相同位置解压缩它,然后在新机器上从上面运行 docker 命令。

    此外,您实际上不需要为此使用“屏幕”-docker run --detach(而不是 -ti)会做同样的事情。

    如果您使用的是 aws 并且想要更轻松地完成此操作,您可以在解压缩数据之前在新机器上的该位置安装一个 EBS 卷,将来您可以将该卷附加到新机器上进行压缩/解压缩过程。

    【讨论】:

    • 非常感谢您的帮助!你教会了我很多东西!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 2017-01-27
    相关资源
    最近更新 更多