Backup Postgresql Database from Docker » History » Version 4
Viacheslav Anzhiganov, 02/19/2025 04:13 AM
1 | 1 | Viacheslav Anzhiganov | # Backup Postgresql Database from Docker |
---|---|---|---|
2 | |||
3 | 4 | Viacheslav Anzhiganov | ## Backup specified database |
4 | 2 | Viacheslav Anzhiganov | |
5 | 3 | Viacheslav Anzhiganov | ```shell |
6 | 1 | Viacheslav Anzhiganov | CID=$(docker ps -f name=<container_name> -q) |
7 | 4 | Viacheslav Anzhiganov | DBN=db |
8 | docker exec -t ${CID} pg_dump -c -U postgres ${DBN} > dump_${DBN}_`date +%Y-%m-%d"_"%H_%M_%S`.sql |
||
9 | ``` |
||
10 | |||
11 | ## Backup all |
||
12 | |||
13 | ```shell |
||
14 | CID=$(docker ps -f name=<container_name> -q) |
||
15 | 3 | Viacheslav Anzhiganov | docker exec -t ${CID} pg_dumpall -c -U postgres > dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql |
16 | 1 | Viacheslav Anzhiganov | ``` |
17 | |||
18 | Creates filename like dump_2023-12-25_09_15_26.sql |
||
19 | |||
20 | If you want a smaller file size, use gzip: |
||
21 | |||
22 | ``` |
||
23 | docker exec -t your-db-container pg_dumpall -c -U postgres | gzip > dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.gz |
||
24 | ``` |
||
25 | |||
26 | If you want even smaller file sizes use brotli or bzip2: |
||
27 | |||
28 | ``` |
||
29 | docker exec -t your-db-container pg_dumpall -c -U postgres | brotli --best > dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br |
||
30 | ``` |
||
31 | |||
32 | or |
||
33 | |||
34 | ``` |
||
35 | docker exec -t your-db-container pg_dumpall -c -U postgres | bzip2 --best > dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.bz2 |
||
36 | ``` |
||
37 | |||
38 | 2 | Viacheslav Anzhiganov | ## Restore your databases |
39 | 1 | Viacheslav Anzhiganov | |
40 | ``` |
||
41 | cat your_dump.sql | docker exec -i your-db-container psql -U postgres |
||
42 | ``` |