Docker Compose 파일로 PostgreSQL, pgAdmin을 도커기반으로 구성한 내용을 정리 합니다.
PostgreSQL : 오픈 소스 관계형 데이터베이스
PostgreSQL은 매우 강력한 오픈 소스 RDBMS로, 다양한 기능과 확장 가능성을 제공하여 데이터베이스 관리 및 쿼리 작업을 지원합니다.
특징
- 확장성: PostgreSQL은 대규모 데이터베이스 처리에도 뛰어난 성능을 제공하며, 테이블 분할, 복제, 파티셔닝 등 다양한 확장 기능을 지원합니다.
- 관계형 모델: PostgreSQL은 관계형 데이터베이스의 기본 원리를 따르며, 데이터 간의 일관성과 무결성을 보장합니다.
- 확장 가능한 인덱싱: 다양한 인덱스 유형을 제공하여 빠른 데이터 접근 및 검색을 가능하게 합니다.
- 저장 프로시저와 함수: PostgreSQL은 PL/pgSQL과 같은 다양한 언어로 저장 프로시저와 함수를 작성하여 데이터 조작 및 가공 작업을 수행할 수 있습니다.
- JSON 및 JSONB 데이터 타입: PostgreSQL은 JSON 데이터를 저장하고 쿼리하는 데 특화된 데이터 타입을 제공합니다.
pgAdmin: PostgreSQL 관리 도구
pgAdmin은 PostgreSQL 데이터베이스를 관리하고 모니터링하기 위한 무료 오픈 소스 도구입니다.
특징
- 웹 기반 인터페이스: pgAdmin은 웹 브라우저에서 실행되며, 데이터베이스 관리 및 모니터링을 편리하게 제공합니다.
- 서버 및 데이터베이스 관리: 데이터베이스 서버와 데이터베이스를 생성, 수정 및 삭제하는 등의 관리 작업을 수행할 수 있습니다.
- 쿼리 툴: SQL 쿼리를 작성하고 실행하여 데이터베이스에서 정보를 추출하거나 조작할 수 있습니다.
- 시각화 및 보고서: 데이터베이스 개체 및 구조를 시각적으로 탐색하고, 사용자 정의 보고서를 생성할 수 있습니다.
- 백업 및 복원: 데이터베이스 백업 및 복원을 지원하여 중요한 데이터를 보호할 수 있습니다.
- 보안 관리: 사용자, 역할 및 권한을 관리하여 데이터베이스 보안을 강화할 수 있습니다.
PostgreSQL, pgAdmin 구성
Docker-compose.yml
version: "3.7"
services:
postgres:
image: postgres:lastest
# restart: always
container_name: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_USER=postgres #psql -U 유저
- POSTGRES_PASSWORD=postgres #pgAdmin password
- TZ=Asia/Seoul
volumes:
- ./data/postgres/:/var/lib/postgresql/data
pgadmin:
image: dpage/pgadmin4:latest
# restart: always
container_name: pgadmin4
ports:
- "8088:80"
environment:
- PGADMIN_DEFAULT_EMAIL=test@test.com #address:8088 인덱스페이지 로그인
- PGADMIN_DEFAULT_PASSWORD=test #address:8088 인덱스페이지 로그인
- TZ=Asia/Seoul
depends_on:
- postgres
volumes:
postgres:
postgres
: PostgreSQL 컨테이너를 생성하며, 데이터베이스 이름, 사용자 이름 및 비밀번호를 설정하고 포트 5432를 호스트에 매핑하고 데이터를 볼륨에 저장합니다.pgadmin
: pgAdmin 컨테이너를 생성하며, 기본 이메일 및 패스워드를 설정하고 포트 8088을 호스트에 매핑합니다. 이 컨테이너는postgres
컨테이너가 실행 중인지 확인 후 시작되며, 데이터를 볼륨에 저장합니다.
컨테이너 실행
docker-compose up -d

PostgreSQL, pgAdmin 컨테이너가 정상적으로 구동되었습니다.
pgAdmin을 통한 PostgreSQL 접속
pgAdmin 접속

docker compose에 정의한 포트로 접속을 합니다.
pgAdmin 로그인
docker compose에 정의한 계정으로 로그인을 합니다.


PostgreSQL 서버 연결
Add New Server를 선택하여 데이터베이스에 접속합니다.


데이터베이스 접속 계정은 docker compose에 정의한 username, password를 입력 합니다.
그리고 Save 버튼을 눌러서 데이터 베이스에 연결을 합니다.
마치며
PostgreSQL 데이터베이스와 pgAdmin 웹 인터페이스가 함께 실행되는 Docker Compose 환경을 구성했습니다.
데이터베이스 관리 및 쿼리 수행을 위해 pgAdmin을 사용할 수 있습니다.