服务器间Postgresql容器与数据的迁移

1. 把对应容器的镜像导出为tar包

docker ps -a 查看所有的容器列表及其对应的镜像名:

我这里使用的是 postgres 镜像。

导出容器对应的镜像为tar压缩包,命令格式如下:

# -o 是 --output 的简写,用于指定输出文件的路径和文件名
docker save -o 路径/文件名.tar 镜像名

导出过程需要等待十几秒左右,我这里导出 postgres 镜像到 /home/hcc_server/ 目录下并保存为 postgresql.tar。

导出后使用SFTP软件把 tar 包拷贝到新的服务器上。

2. 导入tar镜像

新服务器上找到对应 tar 包使用docker load进行导入

# -i 是 --input 的简写,用于指定输入文件的路径
docker load -i 路径/文件名.tar

再使用 docker images 查看对应镜像是否导入成功。

3. 数据迁移

在原服务器上查询容器对应的挂载信息:

docker inspect 容器ID或容器名称

使用此命令可以查看容器的详情信息,找到 Mounts 即为挂载信息。

其中Type为挂载的类型,Source为宿主机数据目录文件,Destination为容器中数据目录文件夹。

Docker数据持久化详情参考:https://cloud.tencent.com/developer/news/438552

使用SFTP软件把宿主机上的数据文件夹拷贝至新的服务器上。

在新的服务上启动对应镜像的容器时挂载从旧的服务器上拷贝过来的数据文件夹。

# -v 宿主机文件目录:容器中数据目录
# -e 可指定启动时的环境变量
docker run -d --name 镜像名  -p 5432:5432 -v /home/newuser/docker/pg_data:/var/lib/postgresql/data postgres

Docker启动命令参数详情参考:https://www.runoob.com/docker/docker-run-command.html

至此登录到新的服务器上的Postgresql时会发现数据库中数据都迁移过来了。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值