備份Docker容器中的PostgreSQL數(shù)據(jù)的圖文實操教程
一、前言
現(xiàn)在docker容器很方便,可以一鍵部署項目,但是方便部署的同時,也給運維帶來了麻煩,docker中的pgsql數(shù)據(jù),如何進行備份呢
二、操作步驟
1. 查看并確定目標容器
使用docker ps命令查看當前運行的容器列表,找到運行PostgreSQL的容器ID或名稱。通常,PostgreSQL容器可以通過其監(jiān)聽的端口(默認為5432)來識別
docker ps

如圖,我的pgsql的鏡像id是 28fe3d7203e5
2. 進入容器
使用docker exec命令進入PostgreSQL容器。這里需要以root用戶身份或使用具有足夠權(quán)限的用戶進入,以便執(zhí)行備份命令
docker exec -u root -it 容器名或容器ID /bin/bash
舉例
docker exec -u root -it 28fe3d7203e5 /bin/bash

3. 執(zhí)行備份命令
在容器內(nèi)部,使用pg_dump命令來備份數(shù)據(jù)庫
pg_dump -h localhost -p 5432 -U 用戶名 -d 數(shù)據(jù)庫名 > 備份文件名.sql
-h 指定數(shù)據(jù)庫服務器的主機名,這里因為是Docker容器內(nèi)部,所以通常是localhost。
-p 指定數(shù)據(jù)庫服務器的端口,PostgreSQL默認端口是5432。
-U 指定連接數(shù)據(jù)庫的用戶名。
-d 指定要備份的數(shù)據(jù)庫名。將備份結(jié)果重定向到文件。
舉例
pg_dump -h localhost -p 5432 -U docmost -d docmost > /var/lib/postgresql/data/backup.sql

4. 退出容器并復制備份文件
完成備份后,使用exit命令退出容器。然后,使用docker cp命令將備份文件從容器內(nèi)復制到宿主機上
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_PATHCopy files/folders between a container and the local filesystem

正確的格式就會輸出 Successfully,如圖

然后,你們可以xshell登錄看一下當前目錄或者打開 XFTP工具看一下是否已經(jīng)備份成sql文件了

以上就是備份Docker容器中的PostgreSQL數(shù)據(jù)的圖文實操教程的詳細內(nèi)容,更多關于備份Docker中PostgreSQL數(shù)據(jù)的資料請關注腳本之家其它相關文章!
相關文章
如何使用Celery和Docker處理Django中的定期任務
這篇文章主要介紹了使用Celery和Docker處理Django中的定期任務的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05

