備份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ù)庫服務(wù)器的主機名,這里因為是Docker容器內(nèi)部,所以通常是localhost。
-p 指定數(shù)據(jù)庫服務(wù)器的端口,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. 退出容器并復(fù)制備份文件
完成備份后,使用exit命令退出容器。然后,使用docker cp命令將備份文件從容器內(nèi)復(fù)制到宿主機上
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)容,更多關(guān)于備份Docker中PostgreSQL數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Docker格式化輸出命令:"docker?inspect?--format"?學習記錄
Docker?--format?參數(shù)提供了基于?Go模板?的日志格式化輸出輔助功能,并提供了一些內(nèi)置的增強函數(shù),這篇文章主要介紹了Docker格式化輸出命令:"docker?inspect?--format"?學習筆記,需要的朋友可以參考下2023-01-01docker中的link和network網(wǎng)絡(luò)互連問題
這篇文章主要介紹了docker中的link和network網(wǎng)絡(luò)互連問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11詳解Docker學習筆記之搭建一個JAVA Tomcat運行環(huán)境
本篇文章主要介紹了詳解Docker學習筆記之搭建一個JAVA Tomcat運行環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02