Project

General

Profile

Backup Restore » History » Version 1

상혁 손, 2025-10-22 19:51
Container를 backup하고 배포하는 서버에 restore하는 방법

1 1 상혁 손
# Podman backuprestore
2
3
#### Container Backup 
4
5
`birdhead@birdnotedev:~/usb_work/podman/backup-postgresql-server$ cat backup.sh`
6
`#!/bin/bash`
7
8
`# --- 1. postgres_image.tar.gz ---`
9
`echo "Backing up postgresql-server_postgres:latest..."`
10
`podman save localhost/postgresql-server_postgres:latest | pv | pigz > postgres_image.tar.gz`
11
12
`# --- 2. base_server_image.tar.gz ---`
13
`echo "Backing up postgresql-server_base-server:latest..."`
14
`podman save localhost/postgresql-server_base-server:latest | pv | pigz > base_server_image.tar.gz`
15
16
`# --- 3. pgadmin_image.tar.gz ---`
17
`echo "Backing up dpage/pgadmin4:latest..."`
18
`podman save docker.io/dpage/pgadmin4:latest | pv | pigz > pgadmin_image.tar.gz`
19
20
`# --- 4. base-server의 베이스 이미지 (Containerfile의 FROM) ---`
21
`echo "Backing up base-server:latest..."`
22
`podman save localhost/base-server:latest | pv | pigz > base-server-base_image.tar.gz`
23
24
`# --- 5. 데이터 및 설정 백업 ---`
25
`echo "Backing up data/config directory (postgresql-server/)..."`
26
`# -C /work/podman : /work/podman 디렉터리로 이동(Change)한 뒤`
27
`# postgresql-server/ : 해당 디렉터리를 압축합니다.`
28
`# 출력(>)은 스크립트 실행 위치(현재 폴더)에 저장됩니다.`
29
`sudo tar -cvf - -C /work/podman postgresql-server/ | pv | pigz > postgresql-server-data-backup.tar.gz`
30
31
`echo "All backups complete."`
32
33
#### Container Restore
34
35
`birdhead@birdnotedev:~/usb_work/podman/backup-postgresql-server$ cat restore.sh`
36
`#!/bin/bash`
37
38
`# 1. postgres_image.tar.gz 복원`
39
`pigz -d -c postgres_image.tar.gz | podman load`
40
41
`# 2. base_server_image.tar.gz 복원`
42
`pigz -d -c base_server_image.tar.gz | podman load`
43
44
`# 3. pgadmin_image.tar.gz 복원`
45
`pigz -d -c pgadmin_image.tar.gz | podman load`
46
47
`# 4. base-server-base_image.tar.gz 복원`
48
`pigz -d -c base-server-base_image.tar.gz | podman load`
49
50
`# 5. 확인 (4개 이미지가 모두 로드되었는지 확인)`
51
`podman images`