개발노트/Linux
#3. Rocky Linux 9 - Docker에 PostgreSQL 설치 및 설정 방법
안엘파파
2025. 2. 7. 15:44
반응형
📌 1. PostgreSQL 컨테이너 실행
🔹 1-1. PostgreSQL 최신 버전의 Docker 이미지 다운로드
docker pull postgres:latest
✅ 버전 지정 가능
- 특정 버전 예:
docker pull postgres:14
🔹 1-2. PostgreSQL 컨테이너 실행
docker run -d \
--name my-postgres \
-e POSTGRES_USER=admin \
-e POSTGRES_PASSWORD=admin123 \
-e POSTGRES_DB=mydatabase \
-p 5432:5432 \
-v postgres_data:/var/lib/postgresql/data \
postgres:latest
✅ 설명
-d
: 백그라운드 실행--name my-postgres
: 컨테이너 이름-e POSTGRES_USER=admin
: DB 사용자 계정-e POSTGRES_PASSWORD=admin123
: 사용자 비밀번호-e POSTGRES_DB=mydatabase
: 기본 생성할 데이터베이스-p 5432:5432
: 로컬 포트 5432 → 컨테이너 포트 5432-v postgres_data:/var/lib/postgresql/data
: 데이터를 영구 보관
📌 2. PostgreSQL 컨테이너 설정 및 접속
🔹 2-1. 컨테이너 목록 확인
docker ps
✅ 실행 중인 컨테이너 확인
🔹 2-2. 컨테이너 내부로 접속
docker exec -it my-postgres psql -U admin -d mydatabase
✅ PostgreSQL 프롬프트 (psql
) 실행됨
📌 3. PostgreSQL 기본 설정
🔹 3-1. 데이터베이스 목록 확인
\l
🔹 3-2. 새로운 사용자 및 데이터베이스 생성
CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE DATABASE mydb OWNER myuser;
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
🔹 3-3. 테이블 생성 및 데이터 삽입
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100) UNIQUE
);
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
SELECT * FROM users;
🔹 3-4. psql 종료
\q
📌 4. PostgreSQL 컨테이너 자동 실행 설정
PostgreSQL 컨테이너를 서버 재부팅 후에도 자동 실행되도록 설정
docker update --restart always my-postgres
📌 5. PostgreSQL 컨테이너 상태 및 로그 확인
🔹 5-1. 컨테이너 상태 확인
docker ps -a
✅ my-postgres
컨테이너가 실행 중인지 확인
🔹 5-2. 컨테이너 로그 확인
docker logs my-postgres
📌 6. PostgreSQL 컨테이너 중지 및 삭제
🔹 6-1. 컨테이너 중지
docker stop my-postgres
🔹 6-2. 컨테이너 삭제
docker rm my-postgres
🔹 6-3. Docker 볼륨 삭제 (데이터까지 삭제됨)
docker volume rm postgres_data
📌 📌 최종 정리
작업 | 명령어 |
---|---|
PostgreSQL 이미지 다운로드 | docker pull postgres:latest |
PostgreSQL 컨테이너 실행 | docker run -d --name my-postgres -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=admin123 -e POSTGRES_DB=mydatabase -p 5432:5432 -v postgres_data:/var/lib/postgresql/data postgres:latest |
PostgreSQL 컨테이너 접속 | docker exec -it my-postgres psql -U admin -d mydatabase |
DB 사용자 생성 | CREATE USER myuser WITH PASSWORD 'mypassword'; |
DB 자동 실행 설정 | docker update --restart always my-postgres |
컨테이너 중지 및 삭제 | docker stop my-postgres && docker rm my-postgres |
반응형