[PostgreSQL] pgAdmin Docker 로 실행 후, Login Sessing 유지하는 방법
- Database(데이터베이스)
- 2022. 7. 5. 21:30
개요
- PostgreSQL 을 Docker Container 로 실행 한 후 GUI 도구인 pgAdmin 또한 Docker Container 로 실행한 후, DB 에 접속합니다.
- 하지만, 위 상황에서 Docker 컨테이너가 종류 후 다시 pgAdmin Container 를 실행하게 되면 Login Session 이 없어지고 다시 접속을 해야하는 번거로움? 이 있습니다.
- Docker Container 가 종료 되고 삭제 되더라도 Login Session 유지 되도록 Docker-Compose 수정 합니다.
기존 Docker-Compose 파일 내용
- 기존 Docker-Compose 파일 내용은 다음과 같습니다.
- 간단히 설명은 드리면, 크게 postgreSQL, pgAdmin 2개의 서비스를 Docker Compose 로 구현해 놓은 상태입니다.
- 위 디렉터리에서 명령어로
docker-compose up
을 입력하게 되면 Docker Compose 가 실행 되면서 PostgreSQL, pgAdmin 모두 실행되는 것을 확인할 수 있습니다.
version: '3.4'
services:
postgres:
image: postgres
container_name: postgres
restart: always
environment:
- POSTGRES_USER=test
- POSTGRES_PASSWORD=system
- POSTGRES_DB=abc
ports:
- '5432:5432'
volumes:
- D:/postgresql/data/:/docker-entrypoint-initdb.d/
- D:/postgresql/data/:/var/lib/postgresql/data
pgadmin:
container_name: pgadmin
image: dpage/pgadmin4
restart: always
ports:
- 8088:80
environment:
- PGADMIN_DEFAULT_EMAIL=test@mail.com
- PGADMIN_DEFAULT_PASSWORD=system
Docker Compose 실행 모습
- 실행 결과, Docker Compose 정상 실행 된 것을 확인할 수 있습니다.
pgAdmin 접속하기
- Docker Container 로 실행한 pgAdmin 에 접속하려면
본인IP:포트번호
로 접속 할 수 있습니다. - 저 같은 경우에는
localhost:8088
을 브라우저에 입력하여 pgAdmin 에 접속하였습니다.
pgAdmin 접속 화면
- pgAdmin 접속을 하게 되면, 다음 화면이 나오게 됩니다.
- 해당 화면에서 자신의 로그인 정보를 입력하여 접속하면 됩니다.
로그인 화면
메인 화면
새 Server 등록
- 접속을 완료 하였다면, Dashboard -> Add New Server 메뉴를 선택 후 새로운 서버를 등록합니다.
- 저는
TestDatabase
이름으로 서버를 등록하였습니다. - 아래와 같이
TestDatabase
이름으로 새로운 Server 가 등록된 것을 확인할 수 있습니다.
Container 종료 및 다시 시작
- 이제 PostgreSQL, pgAdmin 2개의 Docker Container 를 모두 종료합니다.
- 그리고 다시 Docker-Compose 를 재시작 합니다.
> docker-compose stop
> docker-compose up
pgAdmin 재 접속
- Docker-Compose 를 재 시작 하였다면, 다시 pgAdmin 에 접속하여 앞서 생성한
TestDatabase
서버 접속 Session 이 유지 되는지 확인합니다. - 확인 결과, 서버 접속 정보가 유지되지 않고 초기화 된 것을 확인할 수 있습니다.
pgAdmin Docker-Compose 수정
- 앞서 pgAdmin 에서 재접속을 했을 경우, 서버 정보가 유지되지 않고 초기화 되는 것을 확인하였습니다.
- Docker Container 가 종료되더라도, 접속 정보를 유지하고 싶다면 볼륨 마운트를 하여 접속 정보를 기록하고 저장해 두어야 합니다.
- 때문에, pgAdmin Docker-Compose 내용에
D:/postgresql/pgAdmin/:/var/lib/pgadmin
이와 같이/var/lib/pgadmin
디렉터리를 본인 로컬에 볼륨 마운트를 진행해야 합니다. - 수정된 Docker-Compose 내용은 다음과 같습니다.
version: '3.4'
services:
postgres:
image: postgres
container_name: postgres
restart: always
environment:
- POSTGRES_USER=test
- POSTGRES_PASSWORD=system
- POSTGRES_DB=abc
ports:
- '5432:5432'
volumes:
- D:/postgresql/data/:/docker-entrypoint-initdb.d/
- D:/postgresql/data/:/var/lib/postgresql/data
pgadmin:
container_name: pgadmin
image: dpage/pgadmin4
restart: always
ports:
- 8088:80
environment:
- PGADMIN_DEFAULT_EMAIL=test@mail.com
- PGADMIN_DEFAULT_PASSWORD=system
volumes:
- D:/postgresql/pgAdmin/:/var/lib/pgadmin
/var/lib/pgadmin 볼륨 마운트 확인
- 저 같은 경우에는
/var/lib/pgadmin
경로를 제 로컬 경로인D:/postgresql/pgAdmin
디렉터리에 마운트 되도록 지정하였습니다. - 이제 Docker-Compose 를 실행하게 되면,
D:/postgresql/pgAdmin
경로에 다음과 같은 내용들이 볼륨 마운트 된 것을 확인할 수 있습니다.
재접속 후, Server Session 유지 확인
- Docker Container 종료 후, 다시 pgAdmin 으로 접속 시 서버 Session 이 유지되는 것을 확인할 수 있습니다.
728x90
'Database(데이터베이스)' 카테고리의 다른 글
[PostgreSQL] 아카이브 모드 백업 (0) | 2022.07.07 |
---|---|
[PostgreSQL] PostgreSQL pg_basebackup 사용방법 (0) | 2022.07.07 |
[PostgreSQL] 백업 방법 - 아카이브 모드 백업 (0) | 2022.06.26 |
[PostgreSQL] 백업 방법 - 파일 시스템 백업 방법 (0) | 2022.06.26 |
[PostgreSQL] PostgreSQL 백업 방법 - SQL 덤프 백업 (0) | 2022.06.26 |
이 글을 공유하기