[자작NAS] 우분투 서버에 Docker로 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 설치가 완료됩니다.