PostgressSQL on Docker

snooby·2022년 8월 11일
3

🐳 Docker & K8S

목록 보기
29/51
post-thumbnail

RDBMS에서 가장 유명한 DB는 ORACLE입니다.
그러나 유료이죠...ㅎㅎ

무료이면서 사용하기 편한 툴로 MySQL, PostgressSQL등을 사용하는데
MySQL은 부분적으로 유료입니다. 상업적으로 사용할 경우 유료라고 알고 있습니다.
따라서 완전한 무료 툴을 사용하려면 PostgressSQL을 사용해야할 것 같습니다.

또한, MySQL과 MariaDB는 단순 트랜잭션에서는 성능이 우수하나 복잡한 쿼리는 성능 저하가 발생하여 작은 규모의 프로젝트에 더 작합하다고 합니다.

Docker에서 PostgressSQL 이미지 받기

docker pull postgres:14.1

Docker 컨테이너 생성

docker run -p 5432:5432 --name sr-postgres \
> -e POSTGRES_PASSWORD=비번 -e TZ=Asiz/Seoul \
> -v 데이터경로/pgdata:/var/lib/postgresql/data -d \
> postgres:14.1


호스트의 5432포트와 컨테이너의 5432포트를 연결해주고 postgres 라는 이름을 가진 컨테이너에 환경변수 POSTGRES_PASSWORD에 지정한 비밀번호값과 db는 데이터가 손실되면 안되니 백업해둘 볼륨의 경로를 지정해주고 실행시켜주겠습니다.

다음과 같이 컨테이너를 생서하고 나면 컨테이너와 지정한 공유 볼륨의 폴더가 생성됩니다.

PostgreSQL 실행 확인

컨테이너가 실행되었으니 PostgreSQL이 정상적으로 동작하는지 확인합니다.
컨테이너 내부로 들어가서 psql을 실행해보겠습니다.
기본 사용자는 postgres이며 비번은 위에서 설정한 값입니다.

우리가 컨테이너 생성시 이름을 sr-postgres라고 했으니 다음 이름으로 접속합니다.

# 컨테이너 접속 
docker exec -it sr-postgres /bin/bash

# postgress 실행
\l

# 테이블 목록 확인
\l

PostgresSQL URL 설정

외부에서 DB에 접속해야하는 경우도 발생합니다.
그러기 위해서 DB에 들어올 수 있는 URL을 생성해보겠습니다.

export DB_URL='postgresql://postgres:1234@localhost:5432/postgres'

데이터 베이스 생성

여러 스키마를 묶여주는 것이 데이터베이스입니다.
원하는 데이터베이스를 만들고 해당 데이터 베이스로 접속하여 그 안에서 스키마 작업을 진행할 수도 있습니다.

CREATE DATABASE JEM_BOX;
\l

접속 확인

dbeaver 다운로드

앞에서 생성한 jem_box 데이터베이스로 접근합니다.



profile
데이터를 가치있게 다루고 싶은 개발자 🐥

0개의 댓글