Project

General

Profile

Actions

Backup Restore » History » Revision 1

Revision 1/2 | Next »
상혁 손, 2025-10-22 19:51
Container를 backup하고 배포하는 서버에 restore하는 방법


Podman backuprestore

Container Backup 

birdhead@birdnotedev:~/usb_work/podman/backup-postgresql-server$ cat backup.sh
#!/bin/bash

# --- 1. postgres_image.tar.gz ---
echo "Backing up postgresql-server_postgres:latest..."
podman save localhost/postgresql-server_postgres:latest | pv | pigz > postgres_image.tar.gz

# --- 2. base_server_image.tar.gz ---
echo "Backing up postgresql-server_base-server:latest..."
podman save localhost/postgresql-server_base-server:latest | pv | pigz > base_server_image.tar.gz

# --- 3. pgadmin_image.tar.gz ---
echo "Backing up dpage/pgadmin4:latest..."
podman save docker.io/dpage/pgadmin4:latest | pv | pigz > pgadmin_image.tar.gz

# --- 4. base-server의 베이스 이미지 (Containerfile의 FROM) ---
echo "Backing up base-server:latest..."
podman save localhost/base-server:latest | pv | pigz > base-server-base_image.tar.gz

# --- 5. 데이터 및 설정 백업 ---
echo "Backing up data/config directory (postgresql-server/)..."
# -C /work/podman : /work/podman 디렉터리로 이동(Change)한 뒤
# postgresql-server/ : 해당 디렉터리를 압축합니다.
# 출력(>)은 스크립트 실행 위치(현재 폴더)에 저장됩니다.
sudo tar -cvf - -C /work/podman postgresql-server/ | pv | pigz > postgresql-server-data-backup.tar.gz

echo "All backups complete."

Container Restore

birdhead@birdnotedev:~/usb_work/podman/backup-postgresql-server$ cat restore.sh
#!/bin/bash

# 1. postgres_image.tar.gz 복원
pigz -d -c postgres_image.tar.gz | podman load

# 2. base_server_image.tar.gz 복원
pigz -d -c base_server_image.tar.gz | podman load

# 3. pgadmin_image.tar.gz 복원
pigz -d -c pgadmin_image.tar.gz | podman load

# 4. base-server-base_image.tar.gz 복원
pigz -d -c base-server-base_image.tar.gz | podman load

# 5. 확인 (4개 이미지가 모두 로드되었는지 확인)
podman images

Updated by 상혁 손 about 2 months ago · 2 revisions