본문 바로가기
  • A space that records me :)
DataBase/PostgreSQL

[PostgreSQL] PostgreSQL docker 설치 및 외부접속

by yjkim_97 2021. 10. 31.

환경

  • Linux, Centos7
  • docker
  • PostgreSQL v.14

회사에서 곧 진행할 프로젝트의 데이터베이스 서버 환경 구성을 내가 담당하게 되었다.

너무 좋았다!! 항상 프로젝트에 투입될 때 팀장님이나 대리님이 구성한 서버 위에서 작업을 하였는데,, 이번에는 내가 직접 구성을 하다니! 설렜다!!

 

구성해야하는 서버는 총 2대로 PostgresSQL을 사용한다. 미리 구성을 해두는 것이라서, postgreSQL을 직접 설치하여 사용하는 것과, 도커 컨테이너로 설치하여 사용하는 것 중 어떤것이 더 나을지 파악하기 위해서 docker 위해 설치해보기로 하였다.

PostgreSQL

1. Docker volumn 설정

도커위에 데이터베이스 컨테이너를 올릴 때는 볼륨 설정이 필수이다. 도커 컨테이너는 쉽게 올리고 쉽게 지운 후 다시 구성을 할 수 있다는 장점이 있지만, 볼륨 설정이 되지 않는 컨테이너 이미지를 사용하는 경우 안의 내용은 모두 사라지는 단점이 있다.

이렇기에 컨테이너의 볼륨 설정은 생명이다. 특히 데이터베이스라면!!

 

지난번에 컨테이너 이미지를 떠서 데이터베이스 복제를 하려고 하였을 때 볼륨 설정이 되어 있지 않아, 데이터를 후다닥 날릴 뻔 했다.. 다행히 백업 sql을 떠놔서 작업을 했었다.. 

$ docker volume create pgdata

2. docker에 디비 설치

컨테이너 설치

$ docker run -p {외부포트}:{컨테이너 포트} --name {컨테이너명} -e POSTGRES_PASSWORD={비밀번호} -d -v pgdata:/var/lib/postgresql/data postgres

DB user 및 스키마 생성

$ docker exec -it postgres bash
alter user postgres password {비밀번호};

create user root with superuser createdb password {비밀번호};

create database dcai with owner postgres encoding 'UTF8';

3. 외부접속 설정

$ docker stop postgres

$ firewall-cmd --permanent --add-port=15432/tcp
$ firewall-cmd --reload

$ docker start postgres

 

끝!! 도커에 데이터베이스 컨테이너 설정은 아주 간단했다!!

쉽게 생성하고, 제거하고, 복제할 수 있는 장점 만큼 신경 써 줄 부분이 있었다. 도커에 대해서 집중적으로 알아봐야지.


2021.10.31 - [IT story/DB] - [PostgreSQL] PostgreSQL 설치 및 외부접속 허용 (Centos7)

 

[PostgreSQL] PostgreSQL 설치 및 외부접속 허용 (Centos7)

환경 Linux, Centos7 PostgreSQL v.13 1. PostgreSQL 설치 DB 설치 $ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm $ sudo yum..

yjkim97.tistory.com


https://judo0179.tistory.com/96

 

Docker Postgresql 설치 및 셋팅하기

리눅스 컨테이너 즉 docker는 프로세스 형태로 자원을 격리하여 사용하기 때문에 컨테이너가 삭제되면 기존에 저장되었던 데이터는 사라진다. 이를 예방하기 위해서 docker volume을 사용하거나 로

judo0179.tistory.com