当前位置: 首页 > article >正文

【图文实操教程】如何备份Docker容器中的PostgreSQL数据

目录

  • 一、前言
  • 二、操作步骤
    • 1. 查看并确定目标容器
    • 2. 进入容器
    • 3. 执行备份命令
    • 4. 退出容器并复制备份文件

一、前言

现在docker容器很方便,可以一键部署项目,但是方便部署的同时,也给运维带来了麻烦,docker中的pgsql数据,如何进行备份呢

二、操作步骤

1. 查看并确定目标容器

使用docker ps命令查看当前运行的容器列表,找到运行PostgreSQL的容器ID或名称。通常,PostgreSQL容器可以通过其监听的端口(默认为5432)来识别

docker ps

在这里插入图片描述
如图,我的pgsql的镜像id是 28fe3d7203e5

2. 进入容器

使用docker exec命令进入PostgreSQL容器。这里需要以root用户身份或使用具有足够权限的用户进入,以便执行备份命令

docker exec -u root -it 容器名或容器ID /bin/bash

举例

docker exec -u root -it 28fe3d7203e5 /bin/bash

在这里插入图片描述

3. 执行备份命令

在容器内部,使用pg_dump命令来备份数据库

pg_dump -h localhost -p 5432 -U 用户名 -d 数据库名 > 备份文件名.sql

-h 指定数据库服务器的主机名,这里因为是Docker容器内部,所以通常是localhost。
-p 指定数据库服务器的端口,PostgreSQL默认端口是5432。
-U 指定连接数据库的用户名。
-d 指定要备份的数据库名。将备份结果重定向到文件。

举例

pg_dump -h localhost -p 5432 -U docmost -d docmost > /var/lib/postgresql/data/backup.sql

在这里插入图片描述

小小鱼儿小小林
原文链接:https://yujianlin.blog.csdn.net/article/details/141793124

4. 退出容器并复制备份文件

完成备份后,使用exit命令退出容器。然后,使用docker cp命令将备份文件从容器内复制到宿主机上

exit
docker cp 容器名或容器ID:/路径/backup.sql /宿主机/目标/路径/

举例

docker cp 28fe3d7203e5:/var/lib/postgresql/data/backup.sql /home/vdc/tools/docmost/docker/docmost/

注意,这里的冒号: 两边不要留空,如果留空的话就会报异常

“docker cp” requires exactly 2 arguments.
See ‘docker cp --help’.

Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

Copy files/folders between a container and the local filesystem

在这里插入图片描述

正确的格式就会输出 Successfully,如图

在这里插入图片描述

然后,你们可以xshell登录看一下当前目录或者打开 XFTP工具看一下是否已经备份成sql文件了

在这里插入图片描述


http://www.kler.cn/a/294027.html

相关文章:

  • 编译ffmpeg动态库时设置RPATH为$ORIGIN
  • ESLint 使用教程(三):12个ESLint 配置项功能与使用方式详解
  • Python如何从HTML提取img标签下的src属性
  • uni-app表单⑪
  • 通过脚本,发起分支合并请求和打tag
  • JavaScript数组去重的实用方法汇总
  • Web3社交新经济,与 SOEX 实现无缝交易的高级安全性
  • 力扣第124题 二叉树中的最大路径和
  • HQL || SQL :连续签到领金币
  • 爆改YOLOv8|利用yolov10的SCDown改进yolov8-下采样
  • Harmony OS DevEco Studio 如何导入第三方库(以lottie为例)?-- HarmonyOS自学2
  • 【全网最新最全】Docker面试题
  • 浅析网页不安装插件播放RTSP/FLV视频的方法
  • chrome 插件开发入门
  • HTML <input> accept 属性
  • MQTT broker搭建并用SSL加密
  • 免费SSL证书怎么申请?
  • C#索引器(Indexer)
  • 排序算法(冒泡排序,选择排序,插入排序,快速排序)
  • 图片隐写方法
  • 使用c++创建WMI应用程序
  • Llama 3.1大模型的预训练和后训练范式解析
  • 【如何有效率地阅读源码】
  • 搜维尔科技:蹦床、跳绳或骑马,OptiTrack可以捕捉难以想象的物体
  • Tensorflow2 如何扩展现有数据集(缩放、随机旋转、水平翻转、平移等),从而提高模型的准确率 -- Tensorflow自学笔记14
  • vscode安装使用plantuml插件