티스토리 뷰

postgresql 을 좋아하는 이유는 다른거 없고, 라이센스가 소스를 변경하고 재배포를 해도 법적으로 문제가 없다는데 있다. 자세한 설명은 아래 링크를 참고하면 좋을 듯 하다.

 

PostgreSQL •••

PostgreSQL 데이터베이스 서버에 대한 소개글 입니다.

postgresql.kr

 

데이터베이스 postgresql 을 설치하는건 로컬 pc 에 직접 설치를 해도 되지만, docker 를 이용하면 더 독립적으로 서비스를 설치하고 간편하게 관리할 수 있다. 우선 첫째로, docker image 를 만들 Dockerfile 준비한다. 내게 필요한 vim / git / zsh 등을 설치하고, 대략 locale 설정이나 timezone 설정까지만 해놓으면 된다.

FROM postgres:14.4-bullseye

RUN apt-get update; \
		apt-get install -y apt-utils vim zsh curl git locales tzdata; \
		zsh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# LOCALE 설정
RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8

# localtime 에 링크할 시간대를 링크.
RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

# 원하는 시간대 링크후 아래 수행시, /etc/timezone 파일변경됨.
RUN dpkg-reconfigure -f noninteractive tzdata

 

docker 이미지를 빌드한다.

docker build -t postgres-3 .

 

docker run 스크립트를 하나 만든다.  이름은 my-postgres3 으로하고, 타 컨테이너와 연계를 위해 network 설정을 해놓았다. 여기서 특별한건, 이미 5432 포트가 쓰여지고 있다보니, 5433 으로 변경해줬다. 컨테이너 내부에서 사용하는 포트는 5432 인데, 내 로컬 환경에서 접속할때는 5433 으로 접속하도록 매핑을 바꾼것이다. 나머지는 환경변수 설정 및 로컬 폴더와 연결.

docker run -d  \
    --name my-postgres3 \
    --network my-net \
    -p 5433:5432 \
    -e POSTGRES_PASSWORD=1111 \
    -e PGDATA=/var/lib/postgresql/data/pgdata \
    -v $PWD/mount/data:/var/lib/postgresql/data \
    postgres-3

 

서버를 구동했으니, 서버에 접속하는 스크립트도 실행해서 접속해본다.

docker exec -it --user postgres -w /var/lib/postgresql/doc my-postgres3 zsh

 

docker exec 로 접속한 쉘에서 createdb 명령어를 이용해서 mydb 이름의 데이터베이스를 하나 만든다.

$ createdb mydb

 

물론 psql 로 커멘드창에서 붙어도 되긴하지만, DBeaver 프로그램으로 접속을 시도해본다. 아까 docker run 에서 지정했던 비밀번호 1111 을 입력하면 접속된다. 그리고 아까 생성한 mydb 로 접속한다.

 

테이블을 하나 만들어보고, 조회해봤다. 설치 및 접속 성공이다. 끝.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함