본문 바로가기

[Project] 프로젝트 삽질기3 (feat Docker, PostgreSQL)

어가며

사이드 프로젝트에서 푸시 알림을 활용한 서비스를 개발하고 있습니다. 그 과정에서 생각하고 배웠던 점들을 하나씩 작성하고자 합니다. 먼저 푸시 알림에 필요한 로직을 테스트하기 위해서는 먼저 데이터베이스 세팅을 해야 합니다. 이 글은 테스트 DB를 구축하기 위해 Docker에 PostgreSQL을 설치해서 활용하는 방법을 알려드리고자 작성된 글입니다. 

 

 

 

 

 


 

 

 

 

 

 

 

테스트 DB 구축하기

제가 구축하는 프로젝트는 PostgreSQL를 활용하고 있습니다. Docker에 대해 자세하게 알지 못하지만, Docker를 활용하면 쉽게 PostgreSQL을 활용할 수 있다고 판단하여, PostgreSQL을 Docker에 설치해봤습니다.

 

먼저 PostgreSQL을 Docker로 설치하기 위해 아래의 명령어를 입력했습니다.

 

 

docker pull postgres

 

 

출처 : [Docker] Docker에 PostgreSQL 설치하기

 

 

 

그럼 위와 같이 Docker에 PostgreSQL Image를 가져오게 됩니다.

 

 

docker images

 

 

 

 

그 후 postgres 이미지가 생성되었는지 확인해보면 이미지가 존재하는 것을 볼 수 있습니다. 이 작업이 완료됐다면, Postgres 컨테이너를 생성해서, 활용해보도록 하겠습니다.

 

 

docker run -d -p 5432:5432 -e POSTGRES_PASSWORD="<YourPassword>" --name PostgreSQL01 postgres

 

 

이를 먼저 먼저 위와 같이 터미널에 입력하겠습니다. 아래의 <YourPassword> 부분을 삭제하고, 앞으로 사용할 DB 암호를 입력하면 됩니다. 위의 각 항목은 다음과 같습니다. 

 

 

 

  1. docker run : docker image에서 container를 생성한다.
  2. -name PostgreSQL01: container의 이름은 PostgreSQL01로 한다.
  3. -p 5432:5432: 해당 container의 port forwarding에 대해 inbound/outbound port 모두 5432로 설정한다.
  4. -e: container 내 변수를 설정한다.
  5. POSTGRES_PASSWORD="암호": ROOT 암호를 설정 따옴표 내의 내용은 암호이다.
  6. -d postgres: postgres라는 이미지에서 분리하여 container를 생성한다.

 

 

위의 명령어를 입력하고, 컨테이너의 상태를 확인하면, 저는 다음과 같이 나옵니다. POG_Test_PostgreSQL로 컨테이너 이름을 설정했고, STATUS가 Up이면 생성 및 실행이 성공했다는 뜻입니다. 

 

 

 

 

그 후 PostgreSQL을 관리하기 위해 pgAdmin를 활용해보겠습니다. 

 

 

 

 

먼저 Server를 생성하겠습니다.

 

 

 

 

 

 

 

Name와 Host, Password를 입력해줍니다. Password의 경우 컨테이너 생성 시 작성했던 암호를 입력해주면 됩니다. 그러면 데이터베이스를 사용할 수 있습니다. 다음 글에서는 마이그레이션을 활용하는 방법에 대해 알아보겠습니다.

 

 

 

 

 

 


 

 

 

 

마치며

앞으로도 팀의 발전을 돕는 개발자가 되기 위해 노력하려 합니다. 팀에 필요한 부분이 무엇일지 고민하면서, 팀에 도움이 된다면, 열심히 공부해서 실무에 적용할 수 있는 개발자가 되기 위해 노력하고 싶습니다. 팀의 성장에 기여할 수 있는 개발자가 되겠습니다. 

 

 

 

 

 


 

 

 

 

 

참고 및 출처

 

[Docker] Docker에 PostgreSQL 설치하기

목차 PostgreSQL이란? PostgreSQL을 Docker에 설치하기 PostgreSQL을 실행하고 데이터 만들어보기 Microsoft SQLServer Management Studio로 접속하기 PostgreSQL이란?PostgreSQL이란 무엇인가?에 대해서 자세한 내용이 필요

xeppetto.github.io