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

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

3. 執(zhí)行備份命令
在容器內(nèi)部,使用pg_dump命令來(lái)備份數(shù)據(jù)庫(kù)
pg_dump -h localhost -p 5432 -U 用戶名 -d 數(shù)據(jù)庫(kù)名 > 備份文件名.sql
-h 指定數(shù)據(jù)庫(kù)服務(wù)器的主機(jī)名,這里因?yàn)槭荄ocker容器內(nèi)部,所以通常是localhost。
-p 指定數(shù)據(jù)庫(kù)服務(wù)器的端口,PostgreSQL默認(rèn)端口是5432。
-U 指定連接數(shù)據(jù)庫(kù)的用戶名。
-d 指定要備份的數(shù)據(jù)庫(kù)名。將備份結(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ù)制到宿主機(jī)上
exit
docker cp 容器名或容器ID:/路徑/backup.sql /宿主機(jī)/目標(biāo)/路徑/
舉例
docker cp 28fe3d7203e5:/var/lib/postgresql/data/backup.sql /home/vdc/tools/docmost/docker/docmost/
注意,這里的冒號(hào): 兩邊不要留空,如果留空的話就會(huì)報(bào)異常
“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

正確的格式就會(huì)輸出 Successfully,如圖

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

以上就是備份Docker容器中的PostgreSQL數(shù)據(jù)的圖文實(shí)操教程的詳細(xì)內(nèi)容,更多關(guān)于備份Docker中PostgreSQL數(shù)據(jù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何通過(guò)vs2017的Dockerfile來(lái)生成鏡像
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)vs2017的Dockerfile來(lái)生成鏡像,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
docker搭建minio及java sdk使用過(guò)程詳解
MinIO 是一款高性能、分布式的對(duì)象存儲(chǔ)系統(tǒng). 它是一款軟件產(chǎn)品, 可以100%的運(yùn)行在標(biāo)準(zhǔn)硬件,MinIO使用也非常受歡迎,很多朋友不知道m(xù)inio如何搭建及java sdk的使用,今天借這篇文章給大家詳細(xì)介紹下,需要的朋友參考下吧2021-09-09
如何使用Celery和Docker處理Django中的定期任務(wù)
這篇文章主要介紹了使用Celery和Docker處理Django中的定期任務(wù)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
查看docker是否處于啟動(dòng)狀態(tài)的方法詳解
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,本文主要給大家介紹了查看docker是否處于啟動(dòng)狀態(tài)的方法,需要的朋友可以參考下2024-06-06
在Centos7中安裝Docker1.12的詳細(xì)教程
本篇文章主要介紹了在Centos7中安裝Docker1.12的詳細(xì)教程。具有一定的參考價(jià)值,有興趣的可以了解一下。2017-02-02
從入門到實(shí)戰(zhàn)詳解Docker中的常用命令
本文是一份Docker入門命令手冊(cè),重點(diǎn)為大家介紹了鏡像和容器管理的常用操作,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2026-06-06
Docker部署Vue項(xiàng)目的項(xiàng)目實(shí)踐
本文主要介紹了Docker部署Vue項(xiàng)目的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

