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