[postgreSQL] [Docker] Docker에 PostgreSQL 설치하기

[Docker] Docker에 PostgreSQL 설치하기


PostgreSQL이란?

PostgreSQL이란 무엇인가?에 대해서 자세한 내용이 필요하신 분들은 PostgreSQL 공식 사이트의 내용과 PostgreSQL 위키백과를 참고하시기 바란다. 본 포스팅에서는 WSL2 - Docker에 설치하는 데에 집중하여 기술하려 한다.

 

PostgreSQL을 Docker에 설치하기

  1. Docker Hub에서 PostgreSQL을 검색하면 아래와 같이 PostgreSQL의 공식 이미지가 검색된다.

Docker에서 PostgreSQL 검색Docker에서 PostgreSQL 검색
 

  1. 해당 PostgreSQL을 Docker로 데려오자.
1
docker pull postgres

Docker에서 PostgreSQL image 데려오기Docker에서 PostgreSQL image 데려오기
 

  1. 이미지가 잘 생성되었는 지 확인하자. postgres 이미지가 생성되어 있으면 성공이다.
1
docker images

PostgreSQL image 확인PostgreSQL image 확인

 

Postgres 컨테이너를 생성하고 진입하기

  1. PostgreSQL을 위한 컨테이너를 생성하기 위해서는 아래와 같이 입력한다. 이 중 <YourStrong@Passw0rd> 부분은 자신이 사용할 DB 암호를 입력하면 된다.
1
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD="<YourStrong@Passw0rd>" --name PostgreSQL01 postgres

위의 각 항목은 다음과 같다.
(1) docker run : docker image에서 container를 생성한다.
(2) –name PostgreSQL01 : container의 이름은 PostgreSQL01로 한다.
(3) -p 5432:5432 : 해당 container의 port forwarding에 대해 inbound/outbound port 모두 5432으로 설정한다.
(4) -e : container 내 변수를 설정한다.
(5) POSTGRES_PASSWORD=”암호” : ROOT 암호를 설정 따옴표 내의 내용은 암호이다.
(6) -d postgres : postgres이라는 이미지에서 분리하여 container를 생성한다.
 

PostgreSQL Container 생성PostgreSQL Container 생성
 

  1. 컨테이너의 상태를 확인한다. PostgreSQL01 컨테이너의 상태가 현재 Up 상태이면 생성 및 실행 성공이다.
1
docker ps -a

PostgreSQL Container 확인PostgreSQL Container 확인
 

  1. 컨테이너가 실행 중인 상태일 때 컨테이너로 진입 시 아래 명령을 사용한다.
1
sudo docker exec --user="root" -it PostgreSQL01 "bash"

PostgreSQL Container로 진입PostgreSQL Container로 진입

 

PostgreSQL을 실행하고 데이터 만들어보기

  1. PostgreSQL01 컨테이너로 진입하였으면, 아래와 같은 명령을 이용하여 DB를 실행할 수 있다.
1
psql -U postgres
  1. 서버 내 생성되어 있는 모든 데이터베이스 이름을 확인해보자.
1
2
SELECT datname FROM pg_database; -- 전체 데이터베이스 이름 출력
SELECT datname FROM pg_database WHERE datistemplate = false; -- 사용자가 생성한 데이터베이스 이름만 출력
  1. PostgreSQL 내에 사용자 Database를 하나 생성해 보자. 사용 방법은 **CREATE DATABASE 데이터베이스이름;**으로 하면 된다.
1
CREATE DATABASE postgresTestDB;
  1. 생성된 Database의 Schema를 보려면 아래와 같이 입력한다.
1
SELECT nspname FROM pg_catalog.pg_namespace;
![위 1~4까지를 실행한 결과](/images/WSLnDocker/20210501-Docker-PostgreSQL/postgres-docker-hub07.png)
 
  1. 생성한 데이터베이스들 중 하나를 사용하기 위해서는 \c 데이터베이스이름을 실행하면 된다.
1
2
\c postgresql
\c postgrestestdb

아래와 같이 사용하는 데이터베이스가 변경된다.
PostgreSQL DB 변경PostgreSQL DB 변경
 

  1. postgrestestdb를 선택한 후 특정 DB 내 모든 Table을 확인해 본다.
1
2
3
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; -- 사용자가 생성한 테이블의 이름 정보만 조회

PostgreSQL 내 특정 DB 속에 설정된 사용자가 생성한 테이블PostgreSQL 내 특정 DB 속에 설정된 사용자가 생성한 테이블
 

  1. 아래와 같은 SQL 구문을 사용하여 간단히 데이터테이블을 하나 생성, 데이터 입력 후 조회해 본다. Line 1부터 한 줄 씩 입력하여 실행한다.
1
2
3
4
CREATE TABLE TestTable (ID INT, TestString VARCHAR(20));
INSERT INTO TestTable VALUES(1, 'number one');
INSERT INTO TestTable VALUES(2, 'number two');
SELECT * FROM TestTable;

PostgreSQL 데이터 테이블 생성 및 조회PostgreSQL 데이터 테이블 생성 및 조회
 

참고 : PostgreSQL에서 문자열 입력 시 single quote를 사용해야 한다.

  1. PostgreSQL에서 빠져나올 때는 아래와 같이 입력하면 된다.
1
\q

psql에서 나가기psql에서 나가기
 

  1. 그 외 PostgreSQL에서 사용할 수 있는 여러 구문과 명령에 대한 자세한 내용은 PostgreSQL Tutorial 페이지를 참고한다.
 

GUI 도구 pgAdmin 설치하기

PostgreSQL은 pgAdmin이라는 GUI 도구를 지원한다.

  1. 먼저 pgAdmin 설치를 위해서 pgAdmin 공식 홈페이지로 이동한다.

    경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
    어린이용이며, 설치가 필요없는 브라우저 게임입니다.
    https://s1004games.com

  2. 필자는 Download > Windows를 선택하여 Windows용 클라이언트를 다운로드 하였다.
    Windows용 클라이언트 다운로드Windows용 클라이언트 다운로드

  3. 필자가 작성하는 시점에는 pgAdmin4 v5.2가 최신이었다. 최신 버전을 다운로드하여 설치한다.
    2021년 4월 기준 최신 버전2021년 4월 기준 최신 버전

  4. 다운로드한 파일을 클릭하면 설치가 시작된다. 설치하는 방법에 대해서는 따로 안내하지 않겠다.
    pgAdmin 설치 시작pgAdmin 설치 시작

  5. 설치가 완료되면 윈도우 시작 화면에 pgAdmin이 나타난다.
    Windows 시작 화면에 나타나는 pgAdminWindows 시작 화면에 나타나는 pgAdmin

  6. pgAdmin을 실행하면 짧은 로딩이 진행되는 동안 아래와 같은 로고 화면이 나타난다.
    pgAdmin 시작 로고pgAdmin 시작 로고

  7. pgAdmin 실행 시 암호를 입력하라고 나오면, 위쪽에 컨테이너를 생성할 때 입력했던 **<YourStrong@Passw0rd>**에 지정했던 암호를 입력하면 된다.
    pgAdmin 실행 암호 입력pgAdmin 실행 암호 입력

  8. 성공적으로 로그인 되었다면 Quick Link의 Add New Server를 클릭하여 생성한 PostgreSQL01 컨테이너에 연결해 보자.
    Quick Link - Add New ServerQuick Link - Add New Server

  9. 새 창이 나타나면 General 탭과 Connection 탭에 아래와 같이 정보를 입력한다.
    DB Connection 정보 입력DB Connection 정보 입력

  • 주소 : 127.0.0.1 - 내부 Docker의 컨테이너 주소
  • ID : postgres
  • PW : 위에서 설정한 <YourStrong@Passw0rd> 암호 입력
     
  1. 잘 연결되면 아래와 같이 아까 생성한 데이터베이스들이 나타난다.
    연결 성공 시 나타나는 Database들연결 성공 시 나타나는 Database들

  2. 테이블을 생성했었던 데이터베이스 위에 마우스 오른쪽 클릭하여 메뉴 중 Query Tool을 선택한다.
    pgAdmin Query Tool 실행pgAdmin Query Tool 실행

  3. Query Tool에서 SQL 구문을 입력하면 정상적으로 결과가 출력된다.
    SQL 구문 입력 및 결과 조회SQL 구문 입력 및 결과 조회[출처] https://xeppetto.github.io/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4/WSL-and-Docker/15-Docker-PostGreSQL/

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 25085
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 24564
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 25943
1025 [postgreSQL] PostgreSQL 계층형 쿼리 구현 방법 졸리운_곰 2023.01.29 35
1024 [postgreSQL] ORACLE쿼리에서 postgreSQL쿼리 변환 졸리운_곰 2023.01.29 26
1023 [postgreSQL] [PostgreSQL] stored function(stored procedures) 사용하기 졸리운_곰 2023.01.23 30
1022 [SQL] CRUD 기본 사용법 file 졸리운_곰 2023.01.23 30
» [postgreSQL] [Docker] Docker에 PostgreSQL 설치하기 file 졸리운_곰 2023.01.21 25
1020 [MYSQL] 테이블 스키마 설계 고려사항 졸리운_곰 2022.12.03 33
1019 [MySQL] "아는 만큼 빨라진다" 마이SQL 성능 튜닝 팁 10가지 file 졸리운_곰 2022.11.29 30
1018 [오라클] 오라클 연동 오류 [ORA-01017: invalid username/password; logon denied] 졸리운_곰 2022.11.28 76
1017 [오라클] 제약조건 확인 (FK 찾기) 졸리운_곰 2022.11.28 68
1016 [ADsP] 취업 깡패 ADP 뿌시기! "빅데이터 분석가 최고의 자격증이에요" file 졸리운_곰 2022.11.20 22
1015 [기계학습] [번역] TensorFlow Lite 튜토리얼 3 부 : Raspberry Pi의 음성 인식 졸리운_곰 2022.11.18 7
1014 [기계학습] [번역] TensorFlow Lite 튜토리얼 2 부 : 음성 인식 모델 교육 졸리운_곰 2022.11.18 13
1013 [기계학습] [번역] TensorFlow Lite 튜토리얼 1 부 : Wake Word 기능 추출 졸리운_곰 2022.11.18 10
1012 [기계학습][딥러닝] Generative Adversarial Net (GAN) PyTorch 구현: 손글씨 생성 file 졸리운_곰 2022.11.18 54
1011 [hadoop] Cloudera Quick Start VM in Hyper-V file 졸리운_곰 2022.11.14 14
1010 [기계학습][딥러닝] Flask를 이용하여 파이토치를 REST API로 베포하기 file 졸리운_곰 2022.11.12 44
1009 [기계학습][머신러닝][딥러닝] Vanilla GAN file 졸리운_곰 2022.11.08 13
1008 [기계학습][머신러닝][딥러닝] Generative Adversarial Net (GAN) PyTorch 구현: 손글씨 생성 file 졸리운_곰 2022.11.08 103
1007 [기계학습][머신러닝][딥러닝] DCGAN 튜토리얼 졸리운_곰 2022.11.08 4
1006 [PyTorch] pytorch 기본 문법 및 코드, 팁 snippets file 졸리운_곰 2022.10.20 30
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED