
PostgreSQL은 일반적으로Post-GRES로 발음하며 뛰어난 안정성, 유연성, 개방형 기술 표준 지원으로 잘 알려져 있는 오픈 소스 데이터베이스이다.PostgreSQL는 다른RDMBS와는 달리 비관계형 및 관계형 데이터 유형을 모두 지원한다.
$ mkdir {프로젝트명}
$ cd {프로젝트명}
$ mkdir docker
$ cd docker
$ mkdir data_for_postgresql
version: '3.9' # Docker Compose 파일의 버전을 지정
services:
dev-postgres:
image: postgres:16.0 # PostgreSQL 버전 16.0 이미지를 사용한다.
container_name: postgres # 컨테이너 이름을 'postgres'로 설정
environment: # 환경 변수 설정 및 postgresDB 관리자 및 시간대 설정
POSTGRES_USER: ${POSTGRES_USER} # PostgreSQL 사용자 이름을 환경 변수로 설정
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # PostgreSQL 비밀번호를 환경 변수로 설정
POSTGRES_DB: ${POSTGRES_DB} # PostgreSQL 데이터베이스 이름을 환경 변수로 설정
TZ: Asia/Seoul # 타임존을 'Asia/Seoul'로 설정
ports: # 호스트와 컨테이너 포트 매핑
- "5432:5432"
volumes: # 호스트의 디렉토리를 컨테이너의 디렉토리에 매핑
- ./data_for_postgresql:/var/lib/postgresql/data
networks: # 네트워크 설정
- dev # 'dev'라는 사용자 정의 네트워크 연결
dev-pgadmin:
image: dpage/pgadmin4:7.4 # pgAdmin 버전 7.4 이미지를 사용한다.
container_name: pgadmin # 컨테이너 이름을 'pgadmin'으로 설정
environment: # 환경 변수 설정 및 postgresDB 웹 서비스 관리자 및 시간대 설정
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL} # pgAdmin 기본 이메일을 환경 변수로 설정
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} # pgAdmin 기본 비밀번호를 환경 변수로 설정
TZ: Asia/Seoul # 타임존을 'Asia/Seoul'로 설정
ports: # 호스트와 컨테이너 포트 매핑
- "5050:80" # 호스트의 포트 5050을 컨테이너의 포트 80에 매핑
depends_on:
- dev-postgres # 'dev-postgres' 서비스가 시작된 후에 'pgadmin' 서비스를 시작하도록 설정
networks: # 네트워크 설정
- dev # 'dev'라는 사용자 정의 네트워크 연결
networks: # 네트워크 정의
dev:
name: dev # 네트워크 이름 설정
driver: bridge # 네트워크 드라이버 설정
$ POSTGRES_USER={사용자 계정명}
$ POSTGRES_PASSWORD={사용자 비밀번호}
$ POSTGRES_DB={기본 데이터베이스 정의}
$ PGADMIN_DEFAULT_EMAIL={웹 서비스 계정명@email.com}
$ PGADMIN_DEFAULT_PASSWORD={웹 서비스 계정 비밀번호}
$ sudo docker-compose up -d --build
sudo docker-compose ps





