본문 바로가기
IT 끄적이기

Dokcer 이미지로 PostgreSQL세팅

by 미르아 2024. 12. 26.
728x90

PostgresSQL 16 버전 도커 이미지 다운로드

$ docker pull postgres:16

Docker 컨테이너 생성

$ docker run -p 5432:5432 --name postgres-db \

-e POSTGRES_PASSWORD=123 \

-e TZ=Asia/Seoul \

-v /(데이터 경로)/pgdata:/var/lib/postgresql/data -d \

postgres:16

명령어 항목 설명

-p 5432:5432 내부 포트번호와 외부 포트번호를 연결
-e POSTGRES_PASSWORD=123 (필수) 데이터베이스 비밀번호
-e TZ=Asia/Seoul 데이터베이스 표준시간대 설정
-v /(데이터 경로)/pgdata:/var/lib/postgresql/data 공유 볼륨 설정Host PC의 pgdata 경로를 Container의 내부 data 경로로 사용
-d   컨테이너를 백그라운드로 실행
# PostgreSQL 컨테이너를 실행하는 명령어

docker run -p 5432:5432 --name postgres \\  # -p: 호스트의 5432 포트를 컨테이너의 5432 포트에 바인딩 (PostgreSQL의 기본 포트)
-e POSTGRES_PASSWORD=test1234 \\  # -e: 환경 변수 설정. PostgreSQL의 비밀번호를 'test1234'로 설정
-e POSTGRES_USER=myuser \\  # -e: 환경 변수 설정. PostgreSQL에서 사용할 기본 사용자 'myuser'를 설정
-e TZ=Asia/Seoul \\  # -e: 환경 변수 설정. 컨테이너의 시간대를 'Asia/Seoul'로 설정
-v my_postgres_data:/var/lib/postgresql/data \\  # -v: 도커 볼륨 'my_postgres_data'를 컨테이너 내의 /var/lib/postgresql/data에 마운트
# 이 볼륨은 PostgreSQL 데이터베이스 데이터를 저장하는 디렉토리로 사용됩니다. 볼륨을 사용하면 데이터가 컨테이너와 독립적으로 관리됩니다.
-v /Users/koobonse/Documents/postgres:/mnt/data \\  # -v: 호스트의 /Users/koobonse/Documents/postgres 디렉토리를 컨테이너 내의 /mnt/data에 마운트
# 이는 로컬에서 해당 디렉토리와 컨테이너 간에 파일을 공유하기 위해 사용됩니다. 주로 .env 파일이나 외부 데이터 파일을 공유할 때 유용합니다.
-d postgres:16  # -d: 백그라운드에서 컨테이너 실행 (Detached mode). 'postgres:16'은 PostgreSQL의 16버전 이미지 사용

Docker 컨테이너 접속 - postgresql에 접속하여 계정 생성이나 권한을 줄 수 있음

$ docker exec -it postgres-db /bin/bash

컨테이너 내 PostgreSQL 접속

아래의 명령어를 입력하여 컨테이너 내 PostgreSQL에 접속

데이터베이스 계정ID는 **"postgres"**가 기본값

$ psql -U postgres

Database 목록 생성 및 조회

새 데이터 베이스 생성

$ create database 데이터베이스명;

유저 생성

$ CREATE USER 유저명 WITH PASSWORD '비밀번호' SUPERUSER; 권한에 따라 명령어 달라짐

728x90