Project

General

Profile

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
```