Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

나만의 개발 로그 | 고민 로그

Docker PostgresSQL 컨테이너 Dump 후 로컬에서 복원하기(도커 컨테이너 -> 리눅스 서버(호스트) -> 로컬) 본문

DB

Docker PostgresSQL 컨테이너 Dump 후 로컬에서 복원하기(도커 컨테이너 -> 리눅스 서버(호스트) -> 로컬)

ultramancode 2023. 12. 8. 08:43

사내 서버 도커에서 돌고 있는 postgreSQL dump 뜨기

 

 

흐름 

 

1.  서버 원격 접속 (ssh)

2. Docker안에서 돌아가는 postgreSQL 접속

3. Docker 내 Dump 파일 생성

4. Docker 밖으로 끄집어내기

5. 로컬로 옮기기

 

 


1. 서버 원격 접속 (ssh)

ssh [아이디@IP]

비밀번호 입력

 

2. Docker postgreSQL 컨테이너 쉘 진입

docker ps

 - docker ps 명령어를 통해 postgreSQL 컨테이너 ID를 알아낸다.

 

docker exec -it 컨테이너ID /bin/bash

 - 이후 docker postgreSQL 컨테이너 쉘 진입

 

3. Docker 컨테이너 내부 Dump 파일 생성

pg_dump -U 유저 -d 데이터베이스 -f 파일이름.sql

 - dump 따는 명령어를 입력하기(도커 컨테이너 내 최상위 루트에 존재)

 

4. Docker 컨테이너 -> 리눅스 서버(호스트)로 복사

docker cp 컨테이너ID:/파일명.sql ~

- 도커 컨테이너에 있는 덤프파일을 리눅스 서버(호스트)로 가져온다. (~를 통해 최상위에다 넣는게 편했음)

 

5. 리눅스 서버 -> 내 로컬 PC 가져오기

scp 아이디@아이피:/원본 경로/파일명.sql /옮길 경로(내 로컬)/

- 리눅스 서버에 있는 파일을 내 로컬로 가져온다.

- 경로에 있는 파일을 못찾을 경우, 파일에 댇한 해당 아이디 권한도 확인해보자.

 

간단 요약하자면

컨테이너 → 호스트 → 로컬 세 단계 복사를 거치기!

 

참고)

postgreSQL 기준 dump파일로 테이블 새로 만들기

psql --u 유저 postgres(원하는 db)

create database 이름;

exit;

psql -U kimtaewoong -d 데이터베이스이름 < 백업파일.sql

 

 

'DB' 카테고리의 다른 글

DB 이것 저것 정리! (feat.SQL 실행순서..)  (0) 2024.01.19
개발 서버 DB Connection Pool 장애 대응기  (0) 2024.01.04
SQL -3  (0) 2023.01.13
SQL -2  (0) 2023.01.13
SQL -1  (0) 2023.01.13
Comments