[Docker]Docker 에서 PostgreSQL 띄우기

geun·2023년 2월 21일

Docker

목록 보기
2/2
post-thumbnail

최근 프로젝트를 진행하면서 MySQL으로만 진행했는데, 기회가 되면 PostgreSQL도 사용해보고자 기록을 남겨두려한다.
개인 토이 프로젝트에서 사용해보고 MySQL과 어떤 차이점이 있는지 알아보고 추후 프로젝트를 진행할 때 DB 선택지에 포함시키면 좋을 것 같다 :)


역시 RDBMS에서 가장 유명한 것은 Oracle이 아닐까 싶다.
하지만 유료이고 가격대가 만만치 않은 것으로 알고있다...
그래서 나 또한 MySQL을 주로 사용해왔는데, 최근 여러 레퍼런스나 채용공고를 보게되면 오픈소스인 PostgreSQL 또한 많이 사용하는 것 같다.

어떤 차이점이 있는지 개인 Toy Project를 진행하면서 사용해보고 MySQL과 어떤 차이점이 있는지 알아보고자 한다!

우선은 Docker Container 위에 세팅을 진행해보자..!

Setup

(Docker 로 이미지를 받아 띄우는건 참 편한 것 같다..)

PostgreSQL는 Docker Hub에서 공식 Docker 이미지를 제공하고 있기 때문에 해당 이미지를 받아서 사용하면 된다.

docker image를 사용할 때는 latest가 아닌 꼭 Tag명을 지정해서 사용하는 습관을 가지도록 하자.
그래야 나중에 혹여나 오류가 생겼거나 같은 환경을 세팅할 때 해당 버전을 참고하면 된다!

2023-02-22 기준으로는 15.2 버전이 최신 버전인 것 같다.

Docker Image pull

아래 명령어로 사용할 Docker 이미지를 받아온다.

$ docker pull postgres:15.2-alpine

여기서 alpine은 linux 배포판 중 가장 가벼운 배포판이라고 한다.

Docker Hub에서 용량을 비교하면 알 수 있듯이 가장 가벼운 linux 배포판을 바탕으로 이미지가 빌드된 것이다.

24시간 돌아가는 서버 환경은 우리가 사용하는 PC만큼 사양이 좋지 않기 때문에 가급적 가벼운 alpine 버전으로 사용하려 한다.

Docker Container Run

아래의 명령어로 Docker Container를 생성하고 실행한다.

$ docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=${PASSWORD} -e TZ=Asia/Seoul -v /${VOLUME_PATH}:/var/lib/postgresql/data postgres:15.2-alpine

다른 DB들이 기본으로 사용하는 포트번호가 있는 것 처럼 PostgreSQL 또한 기본적으로 사용하는 Port번호가 5432라고한다.

따라서 위 명령어에서 개인적으로 설정해줄 부분은 사용할 Port번호와 ${PASSWORD}, ${VOLUME_PATH} 부분만 설정해주면 된다.

혹시 AirFlow를 사용하고 있다면 AirFlow에서 사용하는 PostgreSQL Port 번호 또한 5432라고 하는데, 겹치지 않게 변경하면 된다.

PostgreSQL 실행 확인

정상적으로 실행됐는지 아래 명령어를 이용해 확인해보자.

$ docker ps

위 이미지와 같이 컨테이너가 정상적으로 실행되었다면 이번에는 직접 컨테이너 내부로 접속해서 PostgreSQL이 정상 작동하는지 확인해보자.

컨테이너 진입 및 PostgreSQL 실행

아래 명령어를 이용하면 postgres 라는 이름을 가진 Container에 bash shell 로 진입 할 수 있다.

$ docker exec -it postgres /bin/bash

bash shell 진입 이후에는 아래 명령어를 통해 PostgreSQL을 실행한다. (기본 사용자 : postgres)

$ psql -U postgres

정상적으로 실행이 되었다면 아래와 같이 PostgreSQL 내부로 진입할 수 있다.

profile
말하는 감자🥔에서 기록도 하는 감자🥔로 거듭나기

0개의 댓글