
Ubuntu 환경에서 docker에 PostgreSQL을 올리는 간단한 글입니다.
설치 환경 및 PostgreSQL 버전
- Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-78-generic x86_64)
- Docker - Client: Docker Engine - Community
- Version: 25.0.3
- postgres:latest
PostgreSQL 설치!
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD="<YourID@Passw0rd>" --name PostgreSQL01 postgres
#Volumn 설정
docker run -p 5432:5432 --name PostgreSQL01 -e POSTGRES_PASSWORD=1111 -d -v postgresql_data:/var/lib/postgresql/data postgres
- docker: docker 실행
- run: image 실행 명령어(만약 존재하는 image가 없다면 알아서 pull 해온다.)
- -d: -it 옵션과 달리 detached 모드로 실행한다. 즉, 백그라운드 실행
- -p 5432:5432 : port의 약자 옵션, 해당 container의 port forwarding 설정을 위한 옵션이다. inbound/outbound port를 각 각 5432로 설정한다.
- -e : container 내부의 변수를 설정
- POSTGRES_PASSWORD=”암호” : PostgreSQL 내부에서 사용할 ROOT 암호를 설정. 따옴표 내의 내용은 암호를 넣는다.
- –name PostgreSQL01 : container의 이름을 PostgreSQL01로 설정.
본인은 현재 프로젝트를 위한 DB로 생성.

컨테이너 상태 진입

PostgreSQL 컨테이너 진입
아래 명령어를 입력하면 root 계정으로 진입 가능하다.
sudo docker exec --user="root" -it PostgreSQL01 "bash"

PostgreSQL 실행
위에서는 컨테이너를 진입했을 뿐 실제 db가 동작하고 있는 것은 아니기 때문에 실행을 해준다.
psql -U postgres
PostgreSQL DB 생성
이제 PostgreSQL 내부에 어떤 DB가 존재하는 지 확인해보자.
SELECT datname FROM pg_database; -- 전체 데이터베이스 이름 출력
SELECT datname FROM pg_database WHERE datistemplate = false; -- 사용자가 생성한 데이터베이스 이름만 출력

실제 DB 생성해보기
CREATE DATABASE [DB이름];
#본인이 사용한 SQL문
CREATE DATABASE zziriritDB;
세미콜론(;)을 주의해서 붙여주자. 그렇지 않으면 다음 줄까지 SQL문으로 받아들인다.

zziriritdb가 생성된 것을 확인할 수 있다.
DB 스키마 확인하기
SELECT nspname FROM pg_catalog.pg_namespace;

사용할 DB 변경하기
새로 만든 DB에서 작업을 하고 싶다면 다음 명령어로 DB를 변경해주어야 한다.
\c db이름
\c postgresql
\c zziriritdb

zziriritdb로 변경이 된 것을 확인할 수 있다.
SELECT * FROM PG_TABLES; -- PostgreSQL 내 모든 테이블 이름 조회
SELECT * FROM PG_TABLES WHERE schemaname='public'; -- 사용자가 생성한 테이블 이름 조회
SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name; -- 사용자가 생성한 테이블의 이름 정보만 조회
DB에서 테이블을 작업하기
이제 이 상태에서 테이블 create 문과 insert 문 등을 사용하여 작업을 진행하면된다.
PostgreSQL에서 빠져나오기
간단하다. 다음 명령어 입력!
\q

이제 컨테이너로 나오게 되었다.
DB 관리를 위한 GUI 툴 사용해보기
본인이 아는 DB 관리 툴은 DBeaver가 있고 찾아보니 PostgreSQL은 pgAdmin이라는 툴을 사용하여 관리를 쉽게할 수 있는 듯하다.
개인 취향인듯하니 선택해서 사용해보자.
pgAdmin - PostgreSQL Tools
www.pgadmin.org
정리
오늘은 Docker에 PostgreSQL을 올려 프로젝트 기간동안 사용할 DB를 구축해보았습니다. 이외에도 AWS RDS를 사용하는 것도 좋은 방법인듯 하나 많은 데이터를 넣거나 테스트시 과도한 비용이 청구될 수 있어 local에 docker로 한 번 올려보았으니 관심있으신 분은 따라해보시면 좋을 듯 합니다. :)
그럼 다음 글에서 뵙겠습니다.
'Infra > Linux-Ubuntu' 카테고리의 다른 글
| [OS/Ubuntu22] Docker 환경 세팅 (0) | 2024.02.26 |
|---|---|
| [OS/Ubuntu22] 새 계정 생성하기 (0) | 2024.02.25 |