ABOUT ME

이상한 질문 많이 하고, 배움도 느리지만 조금이라도 더 나아가려는 사람.

Today
Yesterday
Total
  • VM에 Docker로 DB 설치
    Infra/Cloud 2024. 11. 16. 05:18

    예전에 오라클 클라우드에서 계정을 만들면 VM을 공짜로 주는 이벤트가 있어서 리전만 바로 할당받아놓았다.

    이미 설치한걸 지울수는 없으니 가물가물한 기억을 소환...

     

     

     

    1. vm 서버 생성

     

    vm 서버 생성 후, 데스크탑이나 노트북에서 xshell로 접속

     

     

    2. sudo 명령어 설치

    apt install sudo

     

     

    3. 패키지 업데이트 및 설치

    # 패키지 업데이트
    sudo apt-get update
    
    # 패키지 설치
    sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common

     

     

    4. docker 설치

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

     

     

    5. docker 로  postgres 설치

    # postgres 15 이미지 가져오기
    docker pull postgres:15.5
    
    # 컨테이너 생성
    docker run --name [컨테이너이름] -e POSTGRES_USER=[유저네임] -e POSTGRES_PASSWORD=[비밀번호] -p 5432:5432 -d postgres:15.5

    컨테이너 이름 : [컨테이너이름]

    postgres username : [유저네임]

    postgres password : [비밀번호]

    port : 5432 (인바운드/아웃바운드 다르게 해줘도 되는데 일단은 그냥 똑같이 해주자)

     

     

    6. docker 터미널 들어가서 postgres 계정 생성

    # postgres 컨테이너 터미널 접속
    docker exec -it [컨테이너이름] bash
    
    # postgre bash 접속
    psql -h localhost -p 5432 -U [유저네임] -d postgres
    
    # 데이터베이스 생성
    CREATE DATABASE [데이터베이스이름];

     

     

    7. 데이터베이스 물리적으로 백업

    # 특정 DB 압축 백업 (특정 데이터베이스이름 필요)
    docker exec -t [컨테이너이름] pg_dump -U [유저네임] [데이터베이스이름] | gzip > [백업파일이름].sql.gz
    
    # 특정 DB 복구 (특정 데이터베이스이름 필요)
    gunzip -c [백업파일이름].sql.gz | docker exec -i [컨테이너이름] psql -U [유저네임] -d [데이터베이스이름]
    
    # 모든 DB 압축 백업
    docker exec -t [컨테이너이름] pg_dumpall -U [유저네임] | gzip > [백업파일이름].sql.gz
    
    # 모든 DB 복구
    gunzip -c [백업파일이름].sql.gz | docker exec -i [컨테이너이름] psql -U [유저네임] postgres

    -> 이건 자동화하는 방법이 있는데 추후 추가할 예정...

     

     

    8. oracle cloud 사이트에서 해당 vm 네트워크 그룹 설정을 추가(허용)

     

    Dbeaver 로 접속하면 외부에서 커넥션이 성공적으로 이루어진다.

Designed by Tistory.