IT/NAS

[자작NAS] 우분투 서버에 Docker로 PostgreSQL 설치

psychoria 2022. 2. 14. 17:00
반응형

PostgreSQL은 오픈소스 데이터베이스 시스템입니다.

PostgreSQL

MySQL이나 MS-SQL와 같이 데이터를 저장하고 읽어오는 데 사용됩니다.

PostgreSQL은 데이터베이스 연동을 필요로 하는 다양한 프로그램에 활용할 수 있습니다.

Docker를 통해 PostgreSQL을 설치하는 방법을 알아보도록 하겠습니다.

 

1. Docker로 PostgreSQL 컨테이너 생성

먼저 데이터를 저장할 디렉토리를 생성합니다.

sudo mkdir -p /data/postgres/data

PostgreSQL 공식 이미지를 사용해서 컨테이너를 생성하면 됩니다.

sudo docker run -d \
--name=postgres \
-e POSTGRES_PASSWORD='mysecretpassword' \
-v /data/postgres/data:/var/lib/postgresql/data \
postgres

명령어의 mysecretpassword 부분은 실제 사용을 원하는 비밀번호를 입력하면 됩니다.

기본 사용자는 postgres로 생성됩니다.

컨테이너를 생성할 때 기본 사용자명이나 기본 데이터베이스 이름을 변경할 수 있습니다.

아래 환경 변수들을 사용해서 기본 값을 지정할 수 있습니다.

POSTGRES_USER 사용자명 설정 (기본값: postgres)
POSTGRES_DB 기본 데이터베이스 이름 설정 (기본값: POSTGRES_USER 값)

둘 다 입력하지 않으면 postgres라는 이름으로 기본 사용자와 데이터베이스가 각각 생성됩니다.

Docker Compose로 설치하려는 경우 docker-compose.yml에 PostgreSQL 관련 내용을 추가합니다.

sudo nano ~/docker-compose.yml

다음 내용을 추가하면 됩니다.

version: "3.9"
services:
  postgres:
    image: postgres
    container_name: postgres
    env_file: .env
    environment:
      - POSTGRES_PASSWORD=${POSTGRESQL_PASSWORD}
    volumes:
      - ${POSTGRESQL_PATH}/data:/var/lib/postgresql/data
    restart: unless-stopped

그리고 POSTGRESQL_PASSWORD와 POSTGRESQL_PATH를 .env에 추가합니다.

sudo nano ~/.env

다음과 같이 추가하고 비밀번호 부분은 원하는 비밀번호로 변경하면 됩니다.

# PostgreSQL
POSTGRESQL_PASSWORD=비밀번호
POSTGRESQL_PATH=/data/postgres

설정이 완료되면 컨테이너를 실행하면 됩니다.

sudo docker compose up -d postgres

도커 CLI나 Docker Compose 중 한 가지 방식을 선택해서 실행하면 됩니다.

 

2. PostgreSQL 접속

컨테이너의 psql 명령어를 실행해서 PostgreSQL에 접속할 수 있습니다.

sudo docker exec -it postgres psql -U postgres

명령어의 -U postgres 부분은 사용자명을 나타냅니다.

별도의 값(POSTGRES_USER)을 입력했었던 경우 해당 사용자명을 입력하면 됩니다.

데이터베이스 목록을 확인하려면 아래 명령어를 입력하면 됩니다.

\l

기본적으로 POSTGRES_USER와 POSTGRES_DB를 지정하지 않았으면 아래와 같이 데이터베이스가 표시됩니다.

데이터베이스 목록

psql을 빠져나가려면 아래 명령어를 입력하면 됩니다.

\q

이것으로 PostgreSQL이 정상적으로 설치된 것을 확인할 수 있습니다.

 

3. 계정 비밀번호 변경

계정의 비밀번호를 변경해야 하는 경우 \password 계정명을 입력하면 됩니다.

먼저 DB에 연결하기 위해서 아래와 같이 명령어를 입력합니다.

sudo docker exec -it postgres psql -U postgres

비밀번호를 변경하기 위해 아래와 같이 입력합니다.

\password 계정이름

원하는 비밀번호를 동일하게 2번 입력하면 비밀번호가 변경됩니다.

비밀번호 변경

비밀번호를 변경하고 \q를 입력하면 빠져나오게 됩니다.

이것으로 PostgreSQL 설치가 완료됩니다.

반응형